Switch to standard view 
  Sybase logo
 
 
 



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:

  1. Create and Deploy a PowerBuilder component
  2. Expose the PB Component as a Web Service using EAServer Web Services Toolkit
  3. Create a PowerBuilder proxy using the WSDL file
  4. 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.

    1. Start PowerBuilder 9 and create a new workspace

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

    3. 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";

    4. Deploy the project

    5. Generate stubs for the component in EAServer
      1. Run Jaguar Manager and connect to your EAServer server
      2. 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.

    1. Run Jaguar Manager

    2. Choose Connect | Web Services Toolkit from the Tools menu, and specify the login information for your EAServer server

    3. 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
    4. Click OK to create the entry

    5. Select the pbhello entry and choose New Web Service from the File menu

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

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

      Click OK

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

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

    10. The Web Service Addresses window appears

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

    11. The address appears in the list.

      Click Select Operations...

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

      Select fhello and click OK.

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

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

    1. Start PowerBuilder 9 and create a new workspace.
    2. 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

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

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

        
       SoapConnection lsc_SoapConn 
      string ls_soapResponse
      long   ll_result
      mywebservices_n_pbhelloserviceport proxy_obj
      
      // initialize 
      lsc_SoapConn = create SoapConnection 
      
      // Create proxy object 
      ll_result = lsc_SoapConn.CreateInstance(proxy_obj, &
         "mywebservices_n_pbhelloserviceport") 
      
      if ll_result = 0 then
      	try 
      		// 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) 
      	end try 
      else
      	MessageBox ("Error: " + string(ll_result), &
      		"Unable to create proxy")
      end if
      
      // clean up
      destroy lsc_SoapConn 
       
    5. 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.


  • Back to Top
    © Copyright 2010, Sybase Inc.