2013-05-06 71 views
9

我在Tomcat上部署了RESTful Web服務'該Web服務在客戶端/服務器上的相同域方案中正常工作,但我需要使Web服務可用於跨域'目的我使用了CORS過濾器。SEVERE:異常啓動過濾器CORS

我已經包含在這兩個的MyProjects/lib目錄過濾器的罐子和tomcat/lib目錄「也已包括在Web服務項目的我的web.xml文件以下」

<filter> 
    <filter-name>CORS</filter-name> 
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> 
</filter> 

<init-param> 
    <param-name>cors.supportedHeaders</param-name> 
    <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value> 
</init-param> 

<filter-mapping> 
    <filter-name>CORS</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

但是當我嘗試啓動Web服務我得到以下錯誤關於CORS過濾器:

SEVERE: Exception starting filter CORS 
java.lang.NoClassDefFoundError: com/thetransactioncompany/util/PropertyParseException 
at com.thetransactioncompany.cors.CORSFilter.init(CORSFilter.java:100) 

親切指導我要弄清楚什麼是錯的這種情況」

+0

貌似CORSFilter初始化一些問題。我建議你刪除任何初始化參數,並在默認情況下嘗試,如果它的工作。 – 2013-05-06 11:34:15

+0

thanx答覆,但它不工作,所以我現在切換到jsonp來解決跨域問題 – pointer 2013-05-06 12:18:32

回答

13

您需要添加Java的性能,UTIL s-1.7.1.jar文件添加到類路徑中,因爲cors過濾器對它有依賴性。

http://search.maven.org/#browse%7C-411787350

+0

不應該這樣與tomcat打包在一起嗎? (例如在Debian/Ubuntu的.deb軟件包中) – a1an 2015-08-06 08:42:41

+0

順便說一下,試圖將它添加到Tomcat的lib目錄中,但這並不能解決問題。 – a1an 2015-08-06 08:49:13

0

它可能是一個版本的問題。我遇到了同樣的問題,結果表明這個過濾器需要至少Tomcat 7.0.41版本才能正常工作。根據:http://enable-cors.org/server_tomcat.html

作爲參考,Debian 7.8發佈了Tomcat 7.0.28,它不支持本地CORS。

0

我有同樣的問題。在我的情況下,問題是從項目propertiesDeployment Assembly部分刪除了maven依賴關係。希望它能幫助別人。

0

在我的情況下,在tomcat lib文件夾中添加下面的2個jar文件解決了這個問題。

CORS - 過濾 - 2.5.jar Java的財產utils的-1.10.jar