Documentation Center

Installing the Experience Manager Web service as a Java Web application

As part of installing Experience Manager, install the Experience Manager Web service. Note that this Web application also contains the Content Delivery Web service Server Role. Note that if you have a classic ASP Web site, you can skip this task.

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 preview\webservice\java\webapp\ subfolder.
  5. Deploy the file cd_preview_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 the folder \Content Delivery\roles\preview\webservice\configuration\samples\.
  8. Copy logback.xml from that folder to the WEB-INF/classes/ subdirectory of your Web application.
  9. Copy each of the files that end in _sample.xml, except jvm_sample.xml, to the WEB-INF/classes folder of your Web application, and rename them by removing the string _sample from each filename (for example, rename cd_storage_conf_sample.xml to cd_storage_conf.xml).
  10. From the location in which you installed the Content Deployer, copy cd_deployer_conf.xml from that Server Role into the WEB-INF/classes/ subfolder of your new Web application.
  11. If you have SDL SmartTarget set up in one of your Content Delivery Server Roles, copy the following JAR files from that Server Role into the WEB-INF/lib subfolder of your new Web application:
    • smarttarget_core.jar
    • smarttarget_entitymodel.jar
    • All third-party library JAR files required by SmartTarget. You can find out what these files are by checking your SmartTarget installation media.
  12. 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.
  13. Optional: Configure logging.
  14. Configure the Storage Layer and optionally encrypt sensitive strings. Add an attribute defaultFileSystem to each Storage element in your configuration and set this attribute to false.
  15. Implement security for the new Web application by following the instructions about securing the Web service in the SDL Tridion platform documentation. If you do not wish to secure the Web application (it is strongly recommended that you do), remove the <Security> section from cd_ambient_conf.xml.
  16. Enable the Ambient Data Framework by adding the following to your web.xml:
    <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. 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>
  17. 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>
  18. 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>
  19. Restart the Web application.