如何解决tomcat启动时Restful Web服务错误?

时间:2018-09-30 14:28:48

标签: rest tomcat7 guava

我最近添加了Jersey Jars,用于休息,并且tomcat无法启动,并出现以下错误:

Oct 01, 2018 12:13:11 AM org.glassfish.jersey.internal.inject.Providers checkProviderRuntime
WARNING: A registered provider org.glassfish.jersey.jaxb.internal.JaxbParamConverterBinder is constrained (via @ConstrainedTo) to SERVER runtime but does not implement any provider interface usable in the runtime. Due to constraint configuration problems the provider org.glassfish.jersey.jaxb.internal.JaxbParamConverterBinder will be ignored. 
Oct 01, 2018 12:13:12 AM org.apache.catalina.core.ApplicationContext log
SEVERE: StandardWrapper.Throwable
java.lang.NoSuchMethodError: jersey.repackaged.com.google.common.collect.Iterables.concat(Ljava/lang/Iterable;Ljava/lang/Iterable;)Ljava/lang/Iterable;
    at org.glassfish.jersey.server.internal.ConfigHelper.getContainerLifecycleListener(ConfigHelper.java:92)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:172)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:363)
    at javax.servlet.GenericServlet.init(GenericServlet.java:158)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1230)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1174)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1066)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5370)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5668)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1700)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1690)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

罐子列表中也包含Jersey罐子: enter image description here

谢谢。

2 个答案:

答案 0 :(得分:0)

这些错误类型有时表示您在类路径中使用的库的版本是新旧版本。您使用的番石榴库之间可能不匹配。请参阅此相关问题的answer

也许您应该考虑使用Maven处理项目依赖项。

答案 1 :(得分:0)

在某些情况下会导致该错误,例如:

  1. 您没有任何包含类jersey.repackaged.com.google.common.collect.Iterables的jar文件。但据我所知,您的文件jersey-guava-2.25.1.jar已经拥有它。因此,这种情况将被忽略。

  2. 上面的jar文件已损坏,因此无法加载该类。因此,您可以删除该jar并替换为其他适当的jar。

  3. 所有库中都有一个以上的类。也许其他的jar也包含该类。因此,您可以在IDE上检查这种情况并消除此冲突。

希望获得帮助!