2013-10-04 29 views
1

我的Tomcat 6 “的web.xml” 看起来是这样的:tomcat的web.xml中cors.allowOrigin删除条目

<filter-name>CORS</filter-name> 
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> 
     <init-param> 
      <param-name>cors.supportedMethods</param-name> 
      <param-value>GET, POST, HEAD, OPTIONS, PUT, DELETE</param-value> 
     </init-param> 
     <init-param> 
      <param-name>cors.supportedHeaders</param-name> 
      <param-value>CONTENT-TYPE, ACCEPT, ORIGIN, x-requested-with, Cache-Control</param-value> 
     </init-param> 
     <init-param> 
      <param-name>cors.allowOrigin</param-name> 
      <param-value>http://host1.com:8080</param-value> 
     </init-param> 
     <init-param> 
      <param-name>cors.allowOrigin</param-name> 
      <param-value>http://host2.com:8585</param-value> 
     </init-param> 
      <init-param> 
        <param-name>cors.allowSubdomains</param-name> 
        <param-value>true</param-value> 
      </init-param> 
    </filter> 

当我开始了Liferay的Tomcat的,它删除了 “主机2” 条目(4线)。无论我有多少条目,它都会删除除第一条以外的所有条目。

什么会导致这种情况发生?

回答

0

看来你是从Eclipse IDE中运行Tomcat。如果不使用eclipse,则忽略其余的答案,如果是,请继续阅读。

这是日食这是压倒一切的tomcat的具体的东西,所以有两个解决办法:

  1. 不要使用Eclipse来启动/停止服务器:d(简单,浅显)
  2. 不是改变在Tomcat中web.xml相反,在Servers位置改变,即,查找到您的Eclipse工作区,你会发现一个文件夹<your-eclipse-workspace>\Servers\<name-of-server-(tomcat 6)-at-localhos>-config\。这是eclipse用来覆盖服务器特定文件的位置。

希望这有助于。

+0

我不是从Eclipse IDE运行Tomcat。我在Linux服务器上启动Tomcat。之后我们确定Liferay是限制性实体 - 它删除除“cors.allowOrigin”之外的所有条目。因此,我们的解决方案是将空格分隔的多个网址放在该条目中,例如: http:url1 http:url2 http:url3 http:url4。这一直在为我们工作。 –

+0

哦!我没有正确地看到该条目'​​cors.allowOrigin'下一组的''重复。顺便说一句,这不是liferay这是tomcat,甚至其他服务器会表现他的想法,为什么?因为'param-name'被用作'key'来获取'value',所以你可以把它理解为一个'HashMap',它有唯一的键值。将添加另一个答案,以包含更多细节。 –

+0

我们有另一个运行Tomcat的功能,它允许两个“cors.allowOrigin”值。我明白它是否像一个哈希表,并且我们运行正常并且具有多个值的条目。感谢您的信息。 –