Tridion CWA 2011二进制文件返回404直到刷新

Nic*_*kov 7 websphere tridion tridion-content-delivery tridion-2011

从CWA 1.5升级到在WebSphere上运行的CWA 2011之后,我的客户遇到了问题.问题是请求的任何二进制资源返回404.当重新提交请求(即刷新/重新加载页面)时,它们会加载.

我无法访问他们的环境,必须通过第三方获取所有配置文件.我想知道是否有人有任何想法可能会导致二进制文件中的404这些问题?

小智 12

从Websphere 6.1开始,IBM更改了过滤器的行为,如果您调用的URL实际上不存在于服务器上,则不会执行这些过滤器.

这意味着仍然在数据库上的/somefile.png请求将导致(技术上正确的)404,但完全不是您对启用CWA的Web应用程序的期望.

解决方案是在没有servlet映射的情况下对请求进行调用,您应该能够在WebSphere Admin Console中执行以下操作:

  1. 单击服务器 - >服务器类型 - > Websphere Application Server - > - > Web容器设置 - > Web容器
  2. 在其他设置下,单击自定义属性
  3. 在自定义属性页面上,单击"新建",然后输入"com.ibm.ws.webcontainer.invokefilterscompatibility"作为属性名称,并输入"true"作为值
  4. 保存更新并重新启动服务器


小智 3

对于 WebSphere 7,默认 servlet 称为 FileServlet,因此以下内容应该有效:

<servlet>
<servlet-name>FileServlet</servlet-name>
<servlet-class>
com.ibm.ws.webcontainer.servlet.SimpleFileServlet 
</servlet-class>
</servlet>


<servlet-mapping>
  <servlet-name>FileServlet</servlet-name>
  <url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>FileServlet</servlet-name>
  <url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>FileServlet</servlet-name>
  <url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>FileServlet</servlet-name>
  <url-pattern>*.gif</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)