我正在尝试为我的 Web 应用程序使用跨源过滤器支持。我正在使用 eclipse jetty 插件从 eclipse 中调试它。当我通过控制台运行类时,使用 mvn jetty:run,我总是得到正确的响应。但是当我使用我的 jetty eclipse 插件运行它时,我得到 Class not found 异常。
java.lang.ClassNotFoundException: org.eclipse.jetty.servlets.CrossOriginFilter
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:421)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:383)
at org.eclipse.jetty.util.Loader.loadClass(Loader.java:100)
我的 pom.xml 中有以下依赖项:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlets</artifactId>
<version>9.2.5.v20141112</version>
</dependency>
当我在 eclipse 中检查我的 jetty 项目的类路径配置时,我看到这个依赖项作为 maven 依赖项存在。我仍然不确定为什么 jetty 插件无法找到 org.eclipse.jetty.servlets.CrossOriginFilter 作为类路径的一部分。请帮我解决这个问题。
编辑:
看起来它不仅适用于 CORS。甚至 web.xml 中存在的其他类也会因未找到类而抛出错误。我检查了该调试配置的 jetty 类路径,并能够在那里找到这些 jar 。不确定为什么会这样。
最佳答案
那不能是你的 webapps WEB-INF/lib
目录的一部分(不支持这种方式,因为它无法访问它需要的内部服务器组件)。
在您的${jetty.base}/start.ini
中启用servlet
模块
--module=servlets
关于java - eclipse jetty 插件跨源支持未找到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27608961/