Building and Deploying the Web Service

Once configured, you can build and deploy a WSIT-enabled web service in the same manner as you would build and deploy a standard JAX-WS web service.

The following topics describe how to perform this task:

Building and Deploying a Web Service Created From Java

To build and deploy the web service, open a terminal window, go to the <INSTALL>/wsit-enabled-fromjava/ directory and type the following:

ant server 

This command calls the server target in build.xml, which builds and packages the application into a WAR file, wsit-enabled-fromjava.war, and places it in the wsit-enabled-fromjava/build/war directory. The ant server command also deploys the WAR file to the web container.

The ant command calls multiple tools to build and deploy the web service. The JAX-WS annotation processing tool (apt) processes the annotated source code and invokes the compiler itself, resulting in the class files for each of the Java source files. In the wsit-enabled-fromjava example, the ant target build-server-java in build.xml handles this portion of the process. Next, the individual class files are bundled together along with the web service's supporting configuration files into the application's WAR file. It is this file that is deployed to the web container by the deploy target.

During execution of the server target, you will see a warning message. The message refers to "Annotation types without processors". The warning is expected and does not indicate an abnormal situation. The text is included here for reference:

build-server-java:
  [apt] warning: Annotation types without processors: 
    [javax.xml.bind.annotation.XmlRootElement,
     javax.xml.bind.annotation.XmlAccessorType,
     javax.xml.bind.annotation.XmlType, 
     javax.xml.bind.annotation.XmlElement]
  [apt] 1 warning  

Building and Deploying a Web Service Created From WSDL

To build and deploy the web service, open a terminal window, go to the <INSTALL>/wsit-enabled-fromjava/ directory, and type the following:

ant server 

This command calls wsimport, which takes the WSDL description and generates a corresponding Java interface and other supporting classes. Then the Java compiler is called to compile both the user's code and the generated code. Finally, the class files are bundled together into the WAR file. To see the details of how this is done, see the build-server-wsdl and create-war targets in the wsit-enabled-fromwsdl/build.xml file.

Deploying the Web Service to a Web Container

As a convenience, invoking the ant server command builds the web service's WAR file and immediately deploys it to the web container. However, in some situations, such as after undeploying a web service, it may be useful to deploy the web service without rebuilding it.

For both scenarios, wsit-enabled-fromjava and fromwsdl, the resulting application is deployed in the same manner.

The following sections describe how to deploy on the different web containers:

Deploying to GlassFish

For development purposes, the easiest way to deploy is to use the autodeploy facility of the GlassFish application server. To do so, you simply copy your application's WAR file to the /autodeploy directory for the domain to which you want to deploy. If you are using the default domain, domain1, which is set up by the GlassFish installation process, the appropriate directory path would be <AS_HOME>/domains/domain1/autodeploy.

The build.xml file which accompanies this example has a deploy target for GlassFish. To invoke that target, run the following command in the top-level directory of the respective examples, either wsit-enabled-fromjava or wsit-enabled-fromwsdl, as follows.

ant deploy 

Deploying to Apache Tomcat

Apache Tomcat also has an autoDeploy feature that is enabled by Tomcat's out-of-the-box configuration settings. If you are not sure whether the autoDeploy is enabled, check <TOMCAT_HOME>/conf/server.xml for the value of autoDeploy. Assuming autoDeploy is enabled, you simply copy your application's WAR file to the <TOMCAT_HOME>/webapps directory

The build.xml file which accompanies this example has a deploy target for Tomcat. To invoke that target, run the following command in the top-level directory of the respective examples, either wsit-enabled-fromjava or wsit-enabled-fromwsdl, as follows. You need to use the -Duse.tomcat=true switch to make sure that the application is deployed to Tomcat, and not to the default server, which is GlassFish.

ant -Duse.tomcat=true deploy 

Verifying Deployment

A basic test to verify that the application has deployed properly is to use a web browser to retrieve the application's WSDL from its hosting web container. The following URLs retrieve the WSDL from each of the two example services. If you are running your web browser and web container on different machines, you need to replace localhost with the name of the machine hosting your web service.


Note: Before testing, make sure your web container is running.


If the browser displays a page of XML tags, the web service has been deployed and is working. If not, check the web container log for any error messages related to the sample WAR you have just deployed. For GlassFish, the log can be found at <AS_HOME>/domains/domain1/logs/server.log. For Apache Tomcat, the appropriate log file can be found at <TOMCAT_HOME>/logs/catalina.out.