SGr*_*SGr 26 java jax-rs jersey maven jersey-2.0
尝试在Tomcat上启动Jersey应用程序时,我遇到了一个非常奇怪的错误.相同的代码适用于其他计算机.我尝试重新安装tomcat,我所有的maven依赖项,甚至是Eclipse和Java本身,没有运气.我觉得看起来像是一个糟糕的泽西版本正在加载?
任何指向正确的方向将不胜感激.
这是有效的pom:http://pastebin.com/NacsWTjz
而实际的pom:http://pastebin.com/H6sHe4ce
2015-02-13 13:43:40,870 [localhost-startStop-1] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/middleware-server] - StandardWrapper.Throwable
java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:304)
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:285)
at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:311)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358)
at javax.servlet.GenericServlet.init(GenericServlet.java:158)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1231)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1031)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4901)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5188)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)
Pau*_*tha 65
注意:请参阅上述评论以获得进一步的讨论和提示.
这个错误通常意味着你在类路径上有一个JAX-RS 1和JAX-RS 2 jar.Jersey 2使用JAX-RS 2(javax.ws.rs-api-2.0.1.jar),但是如果你还有jsr311-api.jarJAX-RS 1,那么javax.ws.rs.core.Application每个jar 都有一个.但是jsr311-api Application没有方法getProperties()(因此NoSuchMethodError).
我得出的结论是,您需要做的就是将上述排除添加到swagger依赖项中.Jackson 2.0提供程序(依赖于JAX-RS 1)似乎被2.4.1提供程序(使用新版本)覆盖.所以我们不需要自己添加它.当它被覆盖时,它似乎留下了jsr311-api.jar.因此,如果我们排除它,没有人可以尝试使用它,这看起来是当前的问题
<dependency>
<groupId>com.wordnik</groupId>
<artifactId>swagger-core_2.10</artifactId>
<version>1.3.11</version>
<exclusions>
<exclusion>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
</exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29994 次 |
| 最近记录: |