繁体   English   中英

将启用Jersey的servlet部署到Tomcat:异常

[英]Deploying Jersey-enabled servlet to Tomcat: Exceptions

这是我正在尝试做的事情:我们将转换为使用JAXB和Jersey来满足我们所有的REST服务和XML / JSON序列化需求。

到目前为止,我已经能够获得一个简单的测试工作,其中注释了一些bean,创建了一些测试对象,并将这些对象完美地序列化为XML或JSON,并根据请求返回给客户端。 我主要是基于Internet上的一些示例来编写此代码的,其中在main方法中创建并启动了HTTPServer。

我现在正尝试将相同的示例放入WAR文件中,并将其部署到我的本地Tomcat服务器中,以便可以在更像生产的环境中对其进行测试。 看到我无法按照此处的说明在Tomcat 5.5.27上运行,因此我继续升级到Tomcat 6.0。 相同的指令,相同的结果,巨大的InvocationTargetException。

我到底在想些什么?

    INFO: Scanning for root resource and provider classes in the paths:
  /Library/Tomcat/Home/webapps/user/WEB-INF/lib
  /Library/Tomcat/Home/webapps/user/WEB-INF/classes
Sep 9, 2009 7:22:32 PM com.sun.jersey.api.core.ClasspathResourceConfig init
INFO: Root resource classes found:
  class example.HelloWorld
Sep 9, 2009 7:22:32 PM com.sun.jersey.api.core.ClasspathResourceConfig init
INFO: Provider classes found:
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.sun.jersey.impl.application.WebApplicationImpl$DefaultComponentProvider.getInstance(WebApplicationImpl.java:437)
    at com.sun.jersey.impl.application.ComponentProviderCache.getComponent(ComponentProviderCache.java:187)
    at com.sun.jersey.impl.application.ComponentProviderCache.getProvidersAndServices(ComponentProviderCache.java:122)
    at com.sun.jersey.impl.application.InjectableProviderFactory.configure(InjectableProviderFactory.java:113)
    at com.sun.jersey.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:582)
    at com.sun.jersey.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:487)
    at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:622)
    at com.sun.jersey.spi.container.servlet.ServletContainer.load(ServletContainer.java:538)
    at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:197)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4149)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4458)

这是catalina.out中巨大喷出的一部分。

另外,这是我的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5">

    <servlet>
        <servlet-name>ServletAdaptor</servlet-name>
        <servlet-class>com.sun.jersey.impl.container.servlet.ServletAdaptor</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>ServletAdaptor</servlet-name>
        <url-pattern>/resources/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

任何帮助,将不胜感激! 提前致谢。

您可能在某处有冲突,请检查您的jar文件,看看是否没有重复的类。 使用Tattletale定位问题

**Caused by: java.lang.NoSuchMethodError: javax.ws.rs.ext.Providers.getContextResolver(Ljava/lang/Class;Ljavax/ws/rs/core/MediaType;)Ljavax/ws/rs/ext/ContextResolver;**
at com.sun.jersey.impl.provider.entity.AbstractJAXBProvider.<init>(AbstractJAXBProvider.java:81)
at com.sun.jersey.impl.provider.entity.AbstractRootElementProvider.<init>(AbstractRootElementProvider.java:67)
at com.sun.jersey.impl.provider.entity.XMLRootElementProvider.<init>(XMLRootElementProvider.java:66)
at com.sun.jersey.impl.provider.entity.XMLRootElementProvider$App.<init>(XMLRootElementProvider.java:72)
... 41 more

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM