EAServer Web Service Using PowerBuilder Component and Client
This document illustrates how to use a PowerBuilder component as a
Web service hosted in EAServer, and use a PowerBuilder client to call
the Web service. Instructions are provided to:
Create and Deploy a PowerBuilder component Expose the PB Component as a Web Service using EAServer Web Services Toolkit Create a PowerBuilder proxy using the WSDL file Call the web service from a PowerBuilder clientBefore you Begin
· Ensure the EAServer server you will be using is up and running
· Define an EAServer profile in PowerBuilder, and test it to verify the connection is successful.
· Note that these instructions assume host=localhost, and http port=8080. Please adjust these values to match your environment.
Step A - Create and Deploy a PowerBuilder Component
In this section, we will create a simple PowerBuilder component and deploy it to EAServer. The component will have one method, that receives and retruns a string.
Start PowerBuilder 9 and create a new workspace Create a new target, based on the following information. Accept the defaults for all other values.Target type:
EAServer Component
Interface options
New interface
PowerBuilder object name:
n_pbhello
EAServer component name:
n_pbhello
EAServer profile:
as appropriate to connect to your server
Package name:
mywebservices
Add a function to n_pbhello, based on the following information:Function name:
fHello
Return type:
string
Argument:
type: string
name: asName
Code:
return "Hello " +asName + " from PB Web Service";
Deploy the project Generate stubs for the component in EAServer Run Jaguar Manager and connect to your EAServer server Expand the mywebservices package. Right-click the n_pbhello component and choose Generate Stubs and Skeletons from the popup menu.Step B - Expose the Component as a Web Service using EAServer Web Services Toolkit
In this section, we will use the EAServer Web Services Toolkit to create the WSDL to expose the component as a web service.
Run Jaguar Manager Choose Connect | Web Services Toolkit from the Tools menu, and specify the login information for your EAServer server Select the WSDL Documents folder and choose New WSDL Document from the File menu. Specify these values:Definition name:
pbhello
Target namespace:
http://localhost:8080/pbhelloImpl
Click OK to create the entry Select the pbhello entry and choose New Web Service from the File menu On the New Web Service window, click browse to display a list of the eligable components.
Choose the n_pbhello component under the mywebservices package and click OK.
(Tip: Restart the EAServer server if you do not see the component included in the list.)
Click OK
11. The address appears in the list.
Click Select Operations...
Select fhello and click OK.
Click OK to close the window. The WSDL is now complete. EAServer created two WSDL files for you: pbhelloImpl.wsdl and pbhello.wsdl, in the %EAServer%\Webservices\work\wsdl
Step C - Create a PowerBuilder Proxy Using the WSDL file
In this section, we will create a proxy object in PowerBuilder, to allow us to invoke the Web Service from a PowerBuilder client.
Start PowerBuilder 9 and create a new workspace. Create an Application object, add add the following to the library list: pbsoapclient90.pbdThe soapconnection and soapexception objects will now be included in the tree
Specify the WSDL file as follows, to be served up from the EAServer http listener:
Select the service found in the WSDL fle:
Select the port for the service:
Step through the rest of the wizard to create the project. Select the project and deploy it.
5.
6. SoapConnection lsc_SoapConn
7. string ls_soapResponse
8. long ll_result
9. mywebservices_n_pbhelloserviceport proxy_obj
10.
11. // initialize
12. lsc_SoapConn = create SoapConnection
13.
14. // Create proxy object
15. ll_result = lsc_SoapConn.CreateInstance(proxy_obj, &
16. "mywebservices_n_pbhelloserviceport")
17.
18. if ll_result = 0 then
19. try
20. // Invoke service and display result
21. ls_soapResponse = proxy_obj.fhello("Jackie")
22. MessageBox("SOAP Response", ls_soapResponse)
23. catch ( SoapException e )
24. // error handling
25. MessageBox ("Error", "Cannot invoke Web service." &
26. + " Exception info: " + e.text)
27. end try
28. else
29. MessageBox ("Error: " + string(ll_result), &
30. "Unable to create proxy")
31. end if
32.
33. // clean up
34. destroy lsc_SoapConn
Run the window and click the button to invoke the Web Service and display the result:
For More Information
See the EAServer Web Services Toolkit User's Guide, and the Developing Web Applications section of PowerBuilder Application Techniques.
本文地址:http://com.8s8s.com/it/it20286.htm