# Configuring Deployment Descriptors

Different configuration files are used depending on whether you're deploying to Tomcat or Talend ESB. Servlet container deployment requires a standard web.xml file as well as [Spring configuration file](https://cwiki.apache.org/confluence/display/CXF20DOC/JAX-WS+Configuration) to configure the endpoint, while Talend ESB just needs an OSGi Blueprint configuration file.

## Configuring Deployment Descriptors for Talend ESB (OSGi)

OSGi configuration of the web service provider can be done using the OSGi Blueprint Specification by placing this service.xml file in src/main/resources/OSGI-INF/blueprint of the service submodule. This file is ignored in the case of Tomcat deployment.

```
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
            xmlns:jaxws="http://cxf.apache.org/blueprint/jaxws" 
            xmlns:cxf="http://cxf.apache.org/blueprint/core"
            xsi:schemaLocation="
            http://www.osgi.org/xmlns/blueprint/v1.0.0 
            http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
            http://cxf.apache.org/blueprint/jaxws 
            http://cxf.apache.org/schemas/blueprint/jaxws.xsd
            http://cxf.apache.org/blueprint/core 
            http://cxf.apache.org/schemas/blueprint/core.xsd
            ">
            
            <jaxws:endpoint id="doubleit" implementor="service.DoubleItPortTypeImpl"
            wsdlLocation="DoubleIt.wsdl" address="/doubleit">
            </jaxws:endpoint>
            
            </blueprint>
```

## Configuring Deployment Descriptors for Tomcat (WAR archive)

Since the cxf-servlet.xml Spring configuration file below is used just for WAR deployment, the project has this file stored in the WAR submodule's war/src/main/webapp/WEB-INF folder instead of within the servlet submodule.

```
<?xml version="1.0" encoding="UTF-8"?>
            <beans xmlns="http://www.springframework.org/schema/beans"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:jaxws="http://cxf.apache.org/jaxws"
            xsi:schemaLocation="
            http://www.springframework.org/schema/beans 
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://cxf.apache.org/jaxws
            http://cxf.apache.org/schemas/jaxws.xsd">
            
            <jaxws:endpoint 
            id="doubleit"
            implementor="service.DoubleItPortTypeImpl"
            wsdlLocation="WEB-INF/wsdl/DoubleIt.wsdl"
            address="/doubleit">
            </jaxws:endpoint>
            </beans>
```

In the same folder, we store the web.xml file shown below for the WAR archive.

```
<?xml version="1.0" encoding="UTF-8"?>
            <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
            http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
            <display-name>Sample web service provider</display-name>
            <listener>
            <listener-class>
            org.springframework.web.context.ContextLoaderListener
            </listener-class>
            </listener>
            <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
            classpath:META-INF/cxf/cxf.xml
            </param-value>
            </context-param>
            <servlet>
            <servlet-name>WebServicePort</servlet-name>
            <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
            </servlet>
            <servlet-mapping>
            <servlet-name>WebServicePort</servlet-name>
            <url-pattern>/services/*</url-pattern>
            </servlet-mapping>
            <session-config>
            <session-timeout>60</session-timeout>
            </session-config>
            </web-app>
```