我在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)
请指导我找出这种情况的问题所在
您还需要将java-properties-utils-1.7.1.jar文件添加到类路径中,因为cors过滤器依赖于它。
http://search.maven.org/浏览% 7 c - 411787350
在我的例子中,在tomcat lib文件夹中添加这两个jar文件解决了这个问题:
- cors-filter-2.5.jar
- java-property-utils-1.10.jar
可能是版本问题。我也有同样的问题,事实证明这个过滤器至少需要Tomcat版本7.0.41才能工作,根据:http://enable-cors.org/server_tomcat.html
作为参考,Debian 7.8发布了Tomcat 7.0.28,它不支持本机CORS。
我也遇到了同样的问题。在我的例子中,问题是maven依赖项已经从项目properties
的Deployment Assembly
部分中删除了。
我有同样的问题,但在大多数情况下,首先,我的服务器状态是未绑定的,所以我通过"构建路径"更改了它。但还是没用……我朋友查了一下,发现了Eclipse的"自动构建"功能。