Installing the Content Delivery Web service as a Java Web application

Install the Content Delivery Web service Server Role to give third parties access to your published content. The Experience Manager Web service and the two User Generated Content Web services already include the Content Delivery Web service, so if you already installed either of these, you have already installed the Content Delivery Web service.

Procedure

  1. Ensure that all the prerequisites for a Content Delivery Server Role are met on your target system.
  2. Access the SDL Tridion installation media.
  3. Navigate to the Content Delivery\roles\ folder.
  4. Access the webservice\java subfolder.
  5. Deploy the file cd_webservice.war in this location as a new Java Web application.
  6. If you store published content in a database, download the JDBC driver (JAR file) required for your specific database vendor and copy it into the WEB-INF/lib directory of your Web application:
    VendorJDBC DriverRequired JAR
    Microsoft SQL ServerMicrosoft SQL Server JDBC Driver 4.0

    sqljdbc42.jar for Java 8

    sqljdbc4.jar for Java 6 or Java 7

    OracleOracle JDBC driver 11.2.0.3 (deprecated)

    ojdbc6.jar for Java 6 or Java 7

    OracleOracle JDBC driver 12.1.0.1

    ojdbc7-12.1.0.1.jar for Java 8

    ojdbc7.jar for Java 7

    ojdbc6.jar for Java 6

    IBM DB2IBM Data Server Driver for JDBC and SQLJ (9.7 GA) (deprecated)

    Not supported with Java 8

    db2jcc.jar for Java 6 or Java 7

    You can download JDBC drivers from the following locations:
  7. Navigate to \Content Delivery\resources\configurations\.
  8. Copy logback.xml from that folder to the WEB-INF/classes/ subdirectory of your Web application.
  9. Copy and rname the following configuration files to the WEB-INF/classes folder of your Web application:
    Corresponding configuration fileRenamed configuration file
    cd_ambient_conf_sample.xmlcd_ambient_conf.xml
    cd_dynamic_conf_sample.xmlcd_dynamic_conf.xml
    cd_storage_conf_sample.xmlcd_storage_conf.xml
    cd_link_conf_sample.xmlcd_link_conf.xml
    cd_webservice_conf_sample.xmlcd_webservice_conf.xml
    cd_wai_conf_sample.xmlcd_wai_conf.xml
  10. Open cd_ambient_conf.xml for editing.
  11. Find the <Security> section and enclose it in comments. This element is only needed if you intend to set up OAuth authentication.
  12. Save and close cd_ambient_conf.xml.
  13. Copy cd_licenses.xml, your Content Delivery license file available from SDL Tridion Customer Support, to the WEB-INF/classes directory of your Web application.
    If you want to name the file differently or put it in a different location, you need to update the License element in your configuration files.
  14. Optional: Configure logging.
  15. Configure the Storage Layer and optionally encrypt sensitive strings.
  16. If your Web application server is JBoss, do the following:
    1. Locate the following files in the WEB-INF/lib/ subdirectory and remove them:
      • stax-api.jar
      • serializer.jar
      • xalan.jar
    2. If you use JBoss 5.1 or 5.2, add the following JVM property-value pair to the JAVA_OPTS variable: -Dorg.jboss.logging.provider=slf4j
    3. If you use JBoss 6.0 or 6.1, create a file with the following contents called jboss-deployment-structure.xml and save the file in the WEB-INF/ directory:
      <jboss-deployment-structure>
      	<deployment>
      		<exclusions>
      			<module name="org.slf4j" />
      			<module name="org.slf4j.impl" />
      			<module name="com.sun.jersey" />
      			<module name="com.sun.jersey.json" />
      			<module name="com.sun.jersey.core" />   
      		</exclusions>
      	</deployment>
      </jboss-deployment-structure>
    4. If you use JBoss 6.0 or 6.1, open WEB-INF/web.xml, add the following section and save the file:
      <context-param>
      	<param-name>resteasy.scan</param-name>
      	<param-value>false</param-value>
      </context-param>
      <context-param>
      	<param-name>resteasy.scan.resources</param-name>
      	<param-value>false</param-value>
      </context-param>
      <context-param>
      	<param-name>resteasy.scan.providers</param-name>
      	<param-value>false</param-value>
      </context-param>
  17. If your Web application server is WebLogic, do the following:
    1. Remove the file stax-api.jar from your WEB-INF/lib/ subdirectory.
    2. Add a weblogic.xml file to the WEB-INF folder of your Web application that forces WebLogic to use the libraries contained in the Web application, rather than its own libraries. The contents of this weblogic.xml file must be as follows:
      <weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      	xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"
      	xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
      	<container-descriptor>
      		<prefer-application-packages>
      			<package-name>javax.persistence.**</package-name>
      			<package-name>antlr.*</package-name>
      			<package-name>org.slf4j.**</package-name>
      			<package-name>org.apache.log4j.**</package-name>
      			<package-name>org.apache.xml.serializer.**</package-name>
      		</prefer-application-packages>
      	</container-descriptor>
      </weblogic-web-app>
  18. If you intend to use the Ambient Data Framework with the Content Delivery Web service, configure your web.xml file as follows:
    1. Access the WEB-INF/ subdirectory and open the web.xml file.
    2. Find and uncomment the following section:
      <filter>
      	<filter-name>Ambient Data Framework</filter-name>
      	<filter-class>com.tridion.ambientdata.web.AmbientDataServletFilter</filter-class>
      </filter>
      <filter-mapping>
      	<filter-name>Ambient Data Framework</filter-name>
      	<servlet-name>Content Delivery Web service</servlet-name>
      </filter-mapping>

      This enables the Ambient Data Framework for the Content Delivery Web service only.

    3. If you want to enable the Ambient Data Framework in the entire Web application, replace the servlet-name element with the following:
      <url-pattern>/*</url-pattern>
    4. Save and close web.xml.
  19. Restart the Web application.