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:
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
Note that these instructions assume host=localhost, and http port=8080. Please
adjust these values to match your environment.
- 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
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
- Start PowerBuilder 9 and create a new workspace
- Create a new target, based on the following information. Accept the defaults
for all other values.
|PowerBuilder object name:
|EAServer component name:
||as appropriate to connect to your server
- Add a function to n_pbhello, based on the following information:
||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
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:
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
Choose the n_pbhello component under the mywebservices package and click
(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.
- 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
- 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:
The soapconnection and soapexception objects will now be included in
- Create a new project, of type Web Service Proxy Wizard.
Specify the WSDL file as follows, to be served up from the EAServer http
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
lsc_SoapConn = create SoapConnection
// Create proxy object
ll_result = lsc_SoapConn.CreateInstance(proxy_obj, &
if ll_result = 0 then
// Invoke service and display result
ls_soapResponse = proxy_obj.fhello("Jackie")
MessageBox("SOAP Response", ls_soapResponse)
catch ( SoapException e )
// error handling
MessageBox ("Error", "Cannot invoke Web service." &
+ " Exception info: " + e.text)
MessageBox ("Error: " + string(ll_result), &
"Unable to create proxy")
// clean up
- Run the window and click the button to invoke the Web Service and display
For More Information
See the EAServer Web Services Toolkit User's Guide, and the Developing Web Applications
section of PowerBuilder Application Techniques.