Library Link To Toggle Frames Print Feedback

Deploying a Celtix Endpoint

Deployment steps

The following outlines, at a high-level, what you must do to successfully deploy a Celtix Web service endpoint to a servlet container:

  1. Build a WAR file that contains the your application, the WSDL file that defines your service, a web.xml deployment descriptor file that tells the servlet container to load the CXF servlet class, and a cxf-servlet.xml deployment descriptor file that configures the endpoints that plug into the CXF servlet.

  2. Deploy the WAR file to your servlet container.

Building a WAR file

In order to deploy your application to a servlet container you must build a WAR file that has the following directories and files:

  1. WEB-INF should include a:

    1. cxf-servlet.xml file—which configures the endpoints that plug in to the CXF servlet. When the CXF servlet starts up, it reads the list of endpoint elements from this file and initializes a service endpoint for each one. See Example 2.1, “cxf-servlet.xml file” for more information.

    2. web.xml file—which instructs the servlet container to load the org.apache.cxf.jaxws.servlet.CXFServlet class. An example of this file is contained in your CeltixInstallDir/etc directory.

  2. WEB-INF/classes should include your Web service implementation class and any other classes (including the class hierarchy) generated by the Celtix wsdl2java utility.

  3. WEB-INF/wsdl should include the WSDL file that defines the service that you are deploying.

Example cxf-servlet.xml file

The cxf-servlet.xml file configures the endpoints that plug into the CXF servlet. When the CXF servlet starts up it reads the list of endpoint elements in this file and initializes a service endpoint for each one.

Example 2.1, “cxf-servlet.xml file” shows the cxf-servlet.xml file used in the Celtix servlet container sample application. It contains one endpoint element that configures the Greeter service endpoint.

Example 2.1. cxf-servlet.xml file

<?xml version="1.0" encoding="UTF-8"?>
<endpoints>
    name="hello_world"
    interface="org.apache.hello_world_soap_http.Greeter"
    implementation="demo.hw.server.GreeterImpl"
    wsdl="WEB-INF/wsdl/hello_world.wsdl"
   service="{http://apache.org/hello_world_soap_http}
SOAPService"
    port="{http://apache.org/hello_world_soap_http}SOAPPort"
    url-pattern="/hello_world" />
</endpoints>

Example web.xml file

You must include a web.xml deployment descriptor file that tells the application server to load the CXF servlet. Example 2.2, “web.xml deployment descriptor file” shows the that is used in the Celtix servlet container sample application. You do not need to change this file. A reference copy is located in CeltixInstallDir/etc directory.

Example 2.2. web.xml deployment descriptor file

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
   <display-name>cxf</display-name>
   <description>cxf</description>
   <servlet>
        <servlet-name>cxf</servlet-name>
        <display-name>cxf</display-name>
        <description>Apache CXF Endpoint</description>
        <servlet-class>org.apache.cxf.jaxws.servlet.
     CXFServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>cxf</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>60</session-timeout>
    </session-config>
</web-app>

Deploying WAR file to the servlet container

How you deploy your WAR file depends on the servlet container that you are using. For example, to deploy your WAR file to Tomcat, copy it to the Tomcat CATALINA_HOME/server/webapp directory.

If you are using a different servlet container, please refer to the deployment documentation for that container.