我是泽西新手,但我需要在已经实施RestEasy休息服务的应用程序中使用它。我需要泽西岛,因为它有服务器发送事件。项目构建者是Ant(不是Maven)。我总是有一个错误:
严重:子容器在启动时失败 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine [卡塔利娜] .StandardHost [本地主机] .StandardContext []] 在java.util.concurrent.FutureTask.report(FutureTask.java:122)at java.util.concurrent.FutureTask.get(FutureTask.java:192)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) 在 org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:799) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1559) 在 org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1549) 在java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:617) 在java.lang.Thread.run(Thread.java:745)引起: org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine [卡塔利娜] .StandardHost [本地主机] .StandardContext []] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) ... 6更多引起:java.lang.NoClassDefFoundError: com / google / common / base /功能位于 org.glassfish.jersey.internal.ServiceFinder。(ServiceFinder.java:163) 在 org.glassfish.jersey.servlet.internal.ServletContainerProviderFactory.getAllServletContainerProviders(ServletContainerProviderFactory.java:66) 在 org.glassfish.jersey.servlet.init.JerseyServletContainerInitializer.onStartup(JerseyServletContainerInitializer.java:132) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5456) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 6更多引起:java.lang.ClassNotFoundException: com.google.common.base.Function at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) ......还有11个
2016年3月18日上午11:39:27 org.apache.catalina.core.ContainerBase startInternal SEVERE:启动时子容器失败 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine [Catalina] .StandardHost [localhost]] at java.util.concurrent.FutureTask.report(FutureTask.java:122)at java.util.concurrent.FutureTask.get(FutureTask.java:192)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) 在 org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在org.apache.catalina.startup.Catalina.start(Catalina.java:689)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:483)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)at at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)导致 by:org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine [Catalina] .StandardHost [localhost]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 在 org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1559) 在 org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1549) 在java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:617) 在java.lang.Thread.run(Thread.java:745)引起: org.apache.catalina.LifecycleException:子容器失败 在开始时 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131) 在 org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:799) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ......还有6个
2016年3月18日上午11:39:27 org.apache.catalina.startup.Catalina start 严重:所需的服务器组件无法启动,因此Tomcat是 无法开始。 org.apache.catalina.LifecycleException:失败 启动组件[StandardServer [8005]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 在org.apache.catalina.startup.Catalina.start(Catalina.java:689)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:483)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)at at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)导致 by:org.apache.catalina.LifecycleException:无法启动组件 [StandardService [Catalina]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 在 org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 7更多引起:org.apache.catalina.LifecycleException:失败 启动组件[StandardEngine [Catalina]] org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 在 org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 9更多引起:org.apache.catalina.LifecycleException:一个孩子 容器在启动时失败 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131) 在 org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ......还有11个
我的Jax-RS libs版本超过2.我使用的是Tomcat 7(已经有一个servlets 3.0) web.xml中:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
...
<servlet>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/jaxrs/*</url-pattern>
</servlet-mapping>
...
接下来的问题是:
可能是Jersey和RestEasy发生冲突,我应该只使用Jax-Rs的一个实现
如果我可以在一个servlet容器中使用Jesrsey和RestEasy,我做错了什么?
答案 0 :(得分:2)
您不能同时在同一个类路径中使用两个JAX-RS实现。你必须为你的项目选择其中一个。