Creating a Java bean skeleton from a WSDL document using the WebSphere JAX-WS runtime environment

The web service wizard assists you in creating a skeleton bean from an existing WSDL document. The skeleton bean contains a set of methods that correspond to the operations described in the WSDL document. When the bean is created, each method has a trivial implementation that you replace by editing the bean.

Before you begin

Prerequisites:

About this task

To create a skeleton Java™ bean from a WSDL document using the WebSphere JAX-WS runtime environment:

Procedure

  1. Switch to the Java EE perspective ( Window > Open Perspective > Java EE).
  2. In the Enterprise Explorer view, select the WSDL file you have created or imported.
  3. Click File > New > Other. Select Web Services in order to display the various web service wizards. Select the Web Service wizard. Click Next.
  4. Web Services page: select Top down Java bean Web service as your web service type. You can optionally choose to do the following:
    1. Select the stages of web services development that you want to complete using the slider. This will set several default values on the remaining wizard panels:
      • Develop: this will develop the WSDL definition and implementation of the web service. This includes such tasks as creating the modules which will contain the generated code, WSDL files, deployment descriptors, and Java files when appropriate.
      • Assemble: this ensures the project that will host the web service or client gets associated to an EAR when required by the target application server.
      • Deploy: this will create the deployment code for the service.
      • Install: this will install and configure the Web module and EARs on the target server. If any changes to the endpoints of the WSDL file are required they will be made in this stage.
      • Start: this will start the server once the service has been installed on it.
      • Test: this will provide various options for testing the service, such as using the Generic Services Client, Web Service Explorer or sample JSPs.
    2. Select your Server runtime: the default server is displayed. If you want to deploy your service to a different server click the server link and specify a different server.
      This task supports the following server runtime environments:
      • WebSphere Application Server V7.0 or later
      • WebSphere Application Server Liberty Profile V8.5.5
    3. Select your runtime: the default runtime is displayed. To deploy your service to the IBM® JAX-WS runtime click the runtime link and select it in the window that opens.
    4. Select the service project: the project selected in your workspace is displayed. Only web projects with the Java 5.0 or Java 6.0 facet enabled are supported. To select a different project and EAR click on the project link, or enter a name and allow the wizard to create a project for you. Ensure that the project selected as the Client Web Project is different from the Service Web Project, or the service will be overwritten by the client's generated artifacts. For JAX-WS web services, the server and client projects can share the same EAR.
    5. If you want to create a client, select the type of proxy to be generated and repeat the above steps for the client. The client can be created later using the steps outlined in: Generating a web service client from a WSDL document using the IBM WebSphere JAX-WS runtime environment
    6. Publish the web service: this will launch the Web Services Explorer to publish your web service to a UDDI registry.
      Restriction: This option is not supported for WebSphere Application Server Liberty Profile V8.5.5. There is a known limitation that this check box appears available for the Liberty Profile server and when selected, it is not functional. You can safely ignore this check box when targeting the Liberty Profile server.
    7. Monitor the web service: this will send the web service traffic through the TCP/IP Monitor, which allows you to watch the SOAP traffic generated by the web service and to test this traffic for WS-I compliance. Alternately you can manually set up a TCP/IP monitor as described in Using the TCP/IP Monitor to test web services. Note that if you are routing web service traffic through the TCP/IP monitor that you cannot test the web service using the Universal Test Client.
  5. WebSphere JAX-WS Top Down Web Service Configuration page:
    • Output folder: Enter the location where the generated Java skeleton will be generated or accept the default.
    • Target package: Enter the package name for the generated Java or accept the default.
    • Enable wrapper style: Enables wrapper style mapping from WSDL to Java. For WSDL documents that implement a document/literal wrapped pattern, a root element is declared in the XML schema and is used as an operation wrapper for a message flow. Separate wrapper element definitions exist for both the request and the response. More simply, the element whose name is the same as the operation (the wrapper element) is broken apart so that each of its content elements becomes a parameter of the generated Java method signature.
    • Generate serializable JAXB classes: In WebSphere Application Server and WebSphere(r) Application Server Liberty Profile V8.5.5 when you enable the Java 6 facet, you can choose to generate JAXB classes which implement java.io.Serializable. Classes that do not implement this interface will not have any of their state serialized or deserialized
    • Enable MTOM support: If you select this check box the SOAP Message Transmission Optimization Mechanism will be enabled to optimize the transmission of binary content. For more information on MTOM refer to: MTOM Overview
    • Version of JAX-WS code to be generated: WebSphere Application Server V7.0, supports JAX-WS 2.0 or 2.1 compliant code. WebSphere Application Server V8.0, V8.5, and WebSphere(r) Application Server Liberty Profile V8.5.5, supports JAX-WS 2.0, 2.1, or 2.2 compliant code..
    • Copy WSDL to project: Select this to copy the WSDL file into the service project, or the required WSDL will be generated dynamically by the runtime when needed. This is a convenient option if you plan to create the client at a later time or publish the WSDL for other users.
    • Generate serializable JAXB classes: In WebSphere Application Server v7.0 and v8.0 when you enable the Java 6 facet, you can choose to generate JAXB classes which implement java.io.Serializable. Classes that do not implement this interface will not have any of their state serialized or deserialized.
    • Specify JAX-WS or JAXB binding files: If you have created JAX-WS or JAXB custom binding files, select this check box to use them to create this web service. If this is selected the next page of the wizard will allow you to browse to the custom binding declaration files.
    • Customize service implementation class name: Select this check box if you want to change the default port name to service implementation class name mapping.
    • Generate schema library: this allows you to generate schema code into a schema library. If you select a schema library, on a later page you can customize the mappings between XSD documents or groups of XSD documents to a project.
    • Generate web service deployment descriptor: For JAX-WS web services deployment information is generated dynamically by the runtime; static deployment descriptors are no longer required. Selecting this checkbox will generate them.
  6. Depending on the options chosen on the previous page, you may be prompted to customize your web service implementation on the following pages:
    1. Custom Binding Declarations page: If you have selected to specify JAX-WS or JAXB binding files you can browse to the files on this page.
    2. Service Implementation Configuration page: For each port defined in the WSDL file, you can enter a name for the service implementation class or accept the default.
    3. Schema project configuration page: If you selected to generate a schema library use this page to customize the mappings between XSD documents and projects. This feature will only work if all the schema dependencies are in different targetNamespaces; otherwise there will be compilation errors in ObjectFactory.java.
  7. Test Web Service page: If you selected to test the web service, select the test facility for the generated web service and click Launch. This will open the web service in the Web Services Explorer or Generic Services Client. Select the operation you want to test, enter the required information, and click Go. The result will display in the Status pane. Click Next.
  8. WebSphere JAX-WS web services Client Configuration page: if you have selected to generate a client, you can specify the following options for it on this page:
    • Output folder: This is the location where the client code will be generated
    • Target package: The web services client wizard generates a number of Java files. By default it will create a package name based on the namespace specified in the WSDL file. To override this default behavior you can specify your own package name.
    • Generate portable client: Selecting this checkbox would allow you to move your web service client code from one machine to another or from one instance of WebSphere Application Server to another. If this option is selected, the WSDL document and all the XML Schema and other WSDL documents that it depends upon will be copied into the client project under WEB-INF/wsdl and a file:relativeURL pointing to this copy will then be injected into the JAX-WS Service class's static initialization block.
    • Enable asynchronous invocation for generated client: If you select to enable an asynchronous client, for each method in the web service two additional methods will be created. These are polling and callback methods which allow the client to function asynchronously.
    • Specify JAX-WS or JAXB binding files: If you have created JAX-WS or JAXB custom binding files, select this check box to use them to create the web service client. If this is selected the next page of the wizard will allow you to browse to the custom binding declaration files.
    • Customize client proxy class name: Select this check box if you want to change the default port name to service implementation class name mapping
  9. Custom Binding Declarations page: If you have selected to specify JAX-WS or JAXB binding files you can browse to the files on this page.
  10. Service implementation configuration page: Proxy Generation Configuration page: For each port defined, you can enter a name for the proxy class or accept the default.
  11. Web Service Client Test page:
    • Test the generated proxy: If selected, the sample client will be launched in a Web browser enabling you to test the functionality.
    • Select your test facility. You can test the generated proxy in the Universal Test Client or the Web Service Explorer, or you can generate sample JAX-WS 2.0 JSPs. Note that if you are routing web service traffic through the TCP/IP monitor that you cannot test the web service using the Universal Test Client.
    • Folder: If you selected to test the proxy through a JSP, you can select the folder where the JSP will be located, and you can select the methods that will be included in the JSP.
    • Methods: Select the methods to expose. If you selected to enable asynchronous invocation, the asynchronous methods should be listed as well.
    • Run test on server: this will start the server for you automatically.
  12. Web Service Publication page: If you have selected to publish your web service to a UDDI registry, use this page to launch the Web Services Explorer and select the UDDI registry to which the web service will be published. Click Finish.

Results

After the web service has been created, the following may occur depending on the options you selected:

Feedback