EAServer Web Service Using PowerBuilder Component and Client

类别:数据库 点击:0 评论:0 推荐:

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 client

Before 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.
Choose these options:
-- Generate Stubs
-- Generate Java files
-- Java code base: the location to your EAServer \html\classes directory
-- Compile Java stubs
Click Generate, and verify that the last line of the Code Generation Status Window shows "Code Generation Completed Successfully"

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.)

Verify the selection is filled in as the Web Service Name.


Click OK

Right-click mywebservices/n_pbwebserviceService in the details pane click choose Porperties from the popup

The Web Services Properties window appears. Click Add Addresses The Web Service Addresses window appears

Specify 8080 as the Port Specify localhost as the Host Click Add so an entry is included in the Current Addresses list Click OK to close the window

11. The address appears in the list.


Click Select Operations...

The methods that are eligible as a web service operation appear.


Select fhello and click OK.

The desired address and operation have now been specifed.


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

Now just need to put the WSDL files into an appropriate directory so they can be access via an http URL.
Copy pbhelloImpl.wsdl and pbhello.wsdl from your %EAServer%\Webservices\work\wsdl directory into the %EAServer%\html directory.

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.pbd

The soapconnection and soapexception objects will now be included in the tree


Create a new project, of type Web Service Proxy Wizard.

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.
 

Create a new window with a button, and add this code the button clicked event:

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