2013-10-04 30 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」值。我明白它是否像一個哈希表,並且我們運行正常並且具有多個值的條目。感謝您的信息。 –