XPM在更新时返回404,oData.svc似乎不可用

时间:2013-02-06 16:15:15

标签: tridion tridion-2011 tridion-content-delivery experience-manager

我一直在JSP开发站点上配置XPM(Tridion 2012 UI Update)。它是一个多功能的一揽子软件包,在同一台服务器上使用Content Manager,Databases和Staging进行开发。

我做了以下配置:

  • 定义的临时Web应用程序(称为JSPStaging并设置为jspstaging.project.dev的主机头),它接收内容并将此内容从HTTPUpload Web App放入其自己的文件夹中,该应用程序在出版物中定义目标在CME

  • 我添加了Java Session Preview Webservice(名为cd_preview_webservice)

目前我的网站由Tomcat 7运行,IIS 7.5用于将请求路由到处理jspstaging.project.dev的端口8080(Tomcat)。

我知道这不是一个理想的情况,但我必须做。

手头的问题: 我目前已经成功实现了XPM(或者至少是仪表板,编辑组件并保存它们的能力) 但是,只要您想要更新页面,它有时会刷新,有时会返回错误:

The remote server returned an error: (404) Not Found.

这是(橙色)Tridion消息。我不完全确定上面描述的404错误与SDL Live Content中记录的错误相同。

这是服务器上事件查看器中的错误:

Unable to update the changes using OData Service. The remote server returned an error: (404) Not Found. Component: Tridion.SiteEdit.FastTrackPublishing Errorcode: 1003 User: NT AUTHORITY\NETWORK SERVICE 

因此,我正在追随这个彻头彻尾的惊人blogpost阿尔伯特罗姆斯写道,在他的文章的第2点他提到导航到odata.svc。我似乎无法在我的临时或会话预览Web应用程序中的任何位置找到该文件。我以前安装过Tridion的.NET应用程序,虽然安装介质上的.NET应用程序(以及其他文件中)有一个acces_token和一个odata.svc文件,我注意到会话预览的Web服务的JAVA安装没有有这些文件。但是,稍后在install guide中您需要这些文件来设置发布。

当我按照JSP站点部分并填写发布目标的会话预览选项卡上的字段时,我无法导航到服务器本身的这个odata URL,现在是

http://localhost:8080/cd_preview_webservice/cdws/odata.svc/

Tridion Logging没有说错误,用于登台和会话预览Web应用程序,以及Tomcat日志。他们甚至说OData工作得很好,据我所知......

如果我无法导航到上面发布的网址,这是否意味着有问题,或者404错误是因为这个?

修改

我的登台web.xml:

    <?xml version="1.0" encoding="UTF-8"?>

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”          id =“WebApp_ID”version =“2.5”&gt;     内容交付Web服务

<jsp-config> 
    <taglib>
        <taglib-uri>cd_tags</taglib-uri>
        <taglib-location>/WEB-INF/lib/cd_tags.tld</taglib-location>
    </taglib>
</jsp-config>
<listener>
    <listener-class>
        com.tridion.storage.persistence.session.SessionManagementContextListener
    </listener-class>
</listener>

<!--
OData and linking Web service
-->
<servlet>
    <servlet-name>Content Delivery Web service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
        <param-value>com.sun.jersey.api.core.ClassNamesResourceConfig</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.property.classnames</param-name>
        <param-value>com.tridion.webservices.odata.ODataWebservice;com.tridion.webservices.linking.LinkingService;com.tridion.webservices.odata.JAXBContextResolver</param-value>
    </init-param>
</servlet>
    <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>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<servlet-mapping>
    <servlet-name>Content Delivery Web service</servlet-name>
    <url-pattern>/cdws/*</url-pattern>
</servlet-mapping>

<filter>
    <filter-name>Page Content Filter</filter-name>
    <filter-class>com.tridion.preview.web.PageContentFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>Page Content Filter</filter-name>
    <url-pattern>/cdws/*</url-pattern>
</filter-mapping>

<listener>
    <listener-class>com.tridion.webservices.odata.ODataContextListener</listener-class>
</listener>
<filter>
    <filter-name>Binary Content Filter</filter-name>
    <filter-class>com.tridion.preview.web.BinaryContentFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>Binary Content Filter</filter-name>
    <url-pattern>/Images/*</url-pattern>
</filter-mapping>

1 个答案:

答案 0 :(得分:0)

您提到已添加cd_preview_webservice,但是,错误消息指示它无法正常工作。在Java方面,你不会看到odata.svc文件,因为这个url是由jar中的一个类处理的,所以不用担心。

在Tomcat控制台中,是否显示应用程序已部署/启动且没有错误?

您提到的“/cd_preview_webservice/cdws/odata.svc/”的网址中也包含“/ cdws /”。这看起来有点不规律。通常,url是“/cd_preview_webservice/odata.svc”。你的web.xml是什么样的?