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:
- If you are using WebSphere® Application Server, it is strongly
suggested that you start the server before running the web service
wizard because it may take several minutes to start the WebSphere Application Server depending
on the speed of your computer. To start the server, select it in the
Servers view (Window > Show View > Servers),
right-click and select Start.
- Create or discover and import a WSDL document into a project.
You can use a WSDL file that contains a service element.
About this task
To create a skeleton Java™ bean
from a WSDL document by using the WebSphere JAX-WS
runtime environment:
Procedure
- Switch to the Java EE
perspective (Window > Open Perspective > Java EE).
- In the Enterprise Explorer view, select the WSDL file that
you have created or imported.
- Click File > New > Other. Select Web Services to
display the various web service wizards. Select the Web Service wizard.
Click Next.
- Web Services page: select Top down Java bean Web service as your web service
type. You can also choose to do the following:
- 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.
- 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 V8.5.5
- Select your Web service runtime: the default runtime
is displayed. To deploy your service to the IBM® WebSphere JAX-WS
runtime click the runtime link and select it in the window that opens.
- Select the Service project and Service EAR project:
the project selected in your workspace is displayed. Only web projects
with the Java 5.0, Java 6.0, or Java 7.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.
- If you want to create a client, select the type of proxy
to be generated and repeat steps 1 through 4 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
- 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.
- WebSphere JAX-WS
Top Down Web Service Configuration page:
- Output folder: Enter the location where the generated Java skeleton is 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. 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 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 do not have their states serialized
or deserialized.
- Enable MTOM support: If you select this check box the SOAP Message
Transmission Optimization Mechanism is enabled to optimize the transmission
of binary content. For more information on MTOM read 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
V8.5.5, supports JAX-WS 2.0, 2.1, or 2.2 compliant code.
- Copy WSDL to project: Select to copy the WSDL file into the service
project, or the required WSDL is generated dynamically by the runtime
when needed. This is a convenient option if you plan to create the
client later or publish the WSDL for other users.
- Generate serializable JAXB classes: In WebSphere Application Server and WebSphere(r)
Application Server Liberty 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 do not have their states serialized
or deserialized.
- Specify JAX-WS or JAXB binding files: If you created JAX-WS or
JAXB custom binding files, select this check box to use them to create
this web service. If this check box is selected, the next page of
the wizard allows 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: 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 needed Selecting this check box
generates them.
- Allow vendor extensions: If you select this check
box, the -extension option is added to the wsgen or wsimport command.
The -extension option specifies whether to enable
or accept custom extensions for functionality not specified by the
JAX-WS specification. Use of the extensions can result in applications
that are not portable or do not interoperate with other implementations.
For details, see wsgen command for JAX-WS applications and wsimport command for JAX-WS applications topics
available in the Information Center for WebSphere Application Server.
- Depending on the options that are chosen on the previous
page, you might be prompted to customize your web service implementation
on the following pages:
- Custom Binding Declarations page: If you selected to
specify JAX-WS or JAXB binding files, you can browse to the files
on this page.
- 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.
- 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 works if all the
schema dependencies are in different targetNamespaces; otherwise there
are compilation errors in ObjectFactory.java.
- 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 opens the web service in
the Web Services Explorer or Generic Services Client. Select the operation
that you want to test, enter the required information, and click Go.
The result is shownd in the Status pane. Click Next.
- WebSphere JAX-WS
web services Client Configuration page: if you selected to generate
a client, you can specify the following options for it on this page:
- Output folder: The location where the client code is generated
- Target package: The web services client wizard generates a number
of Java files. By default it
creates a package name that is based on the namespace that is specified
in the WSDL file. To override this default behavior, you can specify
your own package name.
- Generate portable client: Select this check box to move your web
service client code from one machine to another or from one instance
of WebSphere Application
Server or WebSphere Application
Server Liberty V8.5.5 to another. If this option is selected,
the WSDL document and all the XML schema and other WSDL documents
that it depends upon is copied into the client project under WEB-INF/wsdl
and a file:relativeURL pointing to this copy is then
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 more methods are created. These are polling and callback methods,
which allow the client to function asynchronously.
- Specify JAX-WS or JAXB binding files: If you created JAX-WS or
JAXB custom binding files, select this check box to use them to create
the web service client. If this check box 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
- Custom Binding Declarations page: If you selected to specify
JAX-WS or JAXB binding files, you can browse to the files on this
page.
- 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.
- Web Service Client Test page:
- Test the generated proxy: If selected, the sample client is started
in a web browser that allows you to test the function.
- Select your test facility.You can test the generated proxy in the
Generic Service Client or the Web Service Explorer, or you can generate
and use the sample JAX-WS 2.0 JSPs.
- Folder: If you selected to test the proxy through a JSP, you can
select the folder where the JSP is located, and you can select the
methods that are included in the JSP.
- Methods: Select the methods to expose. If you selected to enable
asynchronous invocation, the asynchronous methods ose listed as well.
- Run test on server: Starts the server for you automatically.
Results
After the web service is created, the following might occur
depending on the options you selected:
- The implementation bean is opened in the Java editor. This contains skeleton code that
can be used to test the basic function of the web service, or you
can implement the required business logic for your service before
you test it.
- If you selected to test the generated proxy by using JAX-WS 2.0
JSPs, the proxy is started in a web browser at the following URL:http://localhost:port/WebProjectClient/sampleBeanName/WebServiceName/TestClient.jsp You
can use this sample application to test the web service by selecting
a method, entering a value for the method, and clicking Invoke.
The result of the method is displayed in the results pane. Since this
is a Java bean skeleton with
trivial method implementation, a value of -3 is
returned.
- If you selected to test the generated proxy by using the Universal
Test Client, it is started in a browser window at a URL similar to
the following: http://localhost:port/UTC/preload?object=BeanPackage.BeanServiceProxy.
Under Objects, expand the proxy stub to display the methods of the
web service. Click the method that you want to test, enter a value
in the Parameters pane, and click Invoke.
The result is generated and os displayed.
- If you selected to test the web service by using the Web Services
Explorer, the Explorer opens. Select the operation that you want to
test, enter the required information, and click Go.
The result os displayed in the Status pane.