严重:异常启动过滤器 CORS
Posted
技术标签:
【中文标题】严重:异常启动过滤器 CORS【英文标题】:SEVERE: Exception starting filter CORS 【发布时间】:2013-04-29 23:13:40 【问题描述】:我在 tomcat 上部署了 RESTful Web 服务'该 Web 服务在同一域场景的客户端/服务器中运行良好'但我需要使 Web 服务从跨域可用'为此我使用了 CORS 过滤器.
我在 myProjects/lib 和 tomcat/lib' 中都包含了过滤器的 jar,并且还在我的 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)
请指导我找出这种情况的问题'
【问题讨论】:
在 CORSFilter 的初始化中看起来有些问题。我建议你删除任何初始化参数并默认尝试,如果它有效。 感谢回复,但它不起作用,所以我现在切换到 jsonp 来解决跨域问题 【参考方案1】:您还需要将 java-properties-utils-1.7.1.jar 文件添加到类路径中,因为 cors 过滤器依赖于它。
http://search.maven.org/#browse%7C-411787350
【讨论】:
那不应该和tomcat一起打包吗? (例如,在 Debian/Ubuntu 的 .deb 包中) 顺便说一句,刚刚尝试将其添加到 Tomcat 的 lib 目录中,但这并没有解决问题。【参考方案2】:可能是版本问题。我遇到了同样的问题,结果证明这个过滤器至少需要 Tomcat 版本 7.0.41 才能工作,根据:http://enable-cors.org/server_tomcat.html
作为参考,Debian 7.8 附带不支持原生 CORS 的 Tomcat 7.0.28。
【讨论】:
【参考方案3】:我遇到了同样的问题。在我的情况下,问题是 maven 依赖项已从项目 properties
的 Deployment Assembly
部分中删除。希望它可以帮助某人。
【讨论】:
【参考方案4】:在我的例子中,在 tomcat lib 文件夹中添加这两个 jar 文件解决了这个问题:
cors-filter-2.5.jar java-property-utils-1.10.jar【讨论】:
【参考方案5】:我有同样的问题,但在 ma 的情况下, 首先,我的服务器状态是未绑定的,所以我通过“构建路径”进行了更改 但是还是不行。。 我的朋友查了一下,他发现 Eclipse 的“自动构建”功能。 然后效果很好!
【讨论】:
以上是关于严重:异常启动过滤器 CORS的主要内容,如果未能解决你的问题,请参考以下文章