Java 使用spring运行REST服务时出现问题

Java 使用spring运行REST服务时出现问题,java,rest,exception,servlets,Java,Rest,Exception,Servlets,我在访问RESTful服务时遇到问题,我认为问题可能出在web.xml文件中。我们将javax.ws用于服务和Spring安全性。我得到的例外是: javax.servlet.ServletException: Servlet.init() for servlet SpringApplication threw exception org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:4

我在访问RESTful服务时遇到问题,我认为问题可能出在web.xml文件中。我们将javax.ws用于服务和Spring安全性。我得到的例外是:

javax.servlet.ServletException: Servlet.init() for servlet SpringApplication threw exception
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
java.lang.Thread.run(Thread.java:722)
root cause

java.lang.NoSuchMethodError: org.objectweb.asm.ClassReader.accept(Lorg/objectweb/asm/ClassVisitor;I)V
org.glassfish.jersey.server.internal.scanning.AnnotationAcceptingListener.process(AnnotationAcceptingListener.java:169)
org.glassfish.jersey.server.ResourceConfig.scanClasses(ResourceConfig.java:881)
org.glassfish.jersey.server.ResourceConfig._getClasses(ResourceConfig.java:838)
org.glassfish.jersey.server.ResourceConfig$WrappingResourceConfig._getClasses(ResourceConfig.java:1117)
org.glassfish.jersey.server.ResourceConfig.getClasses(ResourceConfig.java:753)
org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.<init>(ResourceConfig.java:1167)
org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.<init>(ResourceConfig.java:1140)
org.glassfish.jersey.server.ResourceConfig.createRuntimeConfig(ResourceConfig.java:1136)
org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:282)
org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:302)
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:167)
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:349)
javax.servlet.GenericServlet.init(GenericServlet.java:160)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
java.lang.Thread.run(Thread.java:722)

您的运行时部署正在使用过时版本的jar,该jar具有
org.objectweb.asm.ClassReader
类。您可能具有不正确的类路径依赖项。你是如何建立你的项目的?如果它使用的是Maven,您可以运行mvn dependency:tree并将输出复制到这里吗?我添加了该树,谢谢您的帮助。
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
     http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd"
     version="2.5">

<description>Information system for a public library</description>
<display-name>Library IS</display-name>

<!-- Spring -->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>WEB-INF/applicationContext.xml</param-value>
</context-param> 

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>
        org.springframework.web.filter.DelegatingFilterProxy
    </filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<!--REST-->    
<servlet>
    <servlet-name>SpringApplication</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>cz.muni.fi.pa165.rest.ApplicationConfig</param-value>
    </init-param>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>cz.muni.fi.pa165.rest</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>SpringApplication</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

<!--Stripes-->    
<filter>
    <display-name>Stripes Filter</display-name>
    <filter-name>StripesFilter</filter-name>
    <filter-class>net.sourceforge.stripes.controller.StripesFilter</filter-class>
    <init-param>
        <param-name>ActionResolver.Packages</param-name>
        <param-value>cz.muni.fi.pa165.web</param-value>
    </init-param>
    <init-param>
        <param-name>LocalePicker.Locales</param-name>
        <param-value>sk:utf-8,en:utf-8</param-value>
    </init-param>
    <init-param>
        <param-name>Interceptor.Classes</param-name>
        <param-value>net.sourceforge.stripes.integration.spring.SpringInterceptor</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>StripesFilter</filter-name>
    <url-pattern>*.jsp</url-pattern>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>

<filter-mapping>
    <filter-name>StripesFilter</filter-name>
    <servlet-name>StripesDispatcher</servlet-name>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>

<servlet>
    <servlet-name>StripesDispatcher</servlet-name>
    <servlet-class>net.sourceforge.stripes.controller.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>StripesDispatcher</servlet-name>
    <url-pattern>*.action</url-pattern>
</servlet-mapping>

<filter>
    <description>Dynamically maps URLs to ActionBeans.</description>
    <display-name>Stripes Dynamic Mapping Filter</display-name>
    <filter-name>DynamicMappingFilter</filter-name>
    <filter-class>
        net.sourceforge.stripes.controller.DynamicMappingFilter
    </filter-class>
    <init-param>
        <param-name>ActionResolver.Packages</param-name>
        <param-value>com.yourcompany.stripes.action</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>DynamicMappingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
</filter-mapping> 

<!--localization-->
<context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>StripesResources</param-value>
</context-param>

<!--errors-->
<error-page>
    <error-code>404</error-code>
    <location>/404.jsp</location>
</error-page>
<error-page>
    <error-code>403</error-code>
    <location>/403.jsp</location>
</error-page>

</web-app>
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Web 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ libWeb ---
[INFO] cz.muni.fi.pa165:libWeb:war:1.0-SNAPSHOT
[INFO] +- org.springframework.security:spring-security-core:jar:3.2.0.RELEASE:compile
[INFO] |  +- aopalliance:aopalliance:jar:1.0:compile
[INFO] |  +- org.springframework:spring-aop:jar:3.2.6.RELEASE:compile
[INFO] |  +- org.springframework:spring-beans:jar:3.2.6.RELEASE:compile
[INFO] |  +- org.springframework:spring-context:jar:3.2.6.RELEASE:compile
[INFO] |  +- org.springframework:spring-core:jar:3.2.6.RELEASE:compile
[INFO] |  \- org.springframework:spring-expression:jar:3.2.6.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-config:jar:3.2.0.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-web:jar:3.2.0.RELEASE:compile
[INFO] |  \- org.springframework:spring-web:jar:3.2.6.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-taglibs:jar:3.2.0.RELEASE:compile
[INFO] |  \- org.springframework.security:spring-security-acl:jar:3.2.0.RELEASE:compile
[INFO] |     \- org.springframework:spring-tx:jar:3.2.6.RELEASE:compile
[INFO] +- org.glassfish.jersey.media:jersey-media-moxy:jar:2.4.1:compile
[INFO] |  +- org.glassfish.jersey.core:jersey-common:jar:2.4.1:compile
[INFO] |  |  +- javax.annotation:javax.annotation-api:jar:1.2:compile
[INFO] |  |  +- com.google.guava:guava:jar:14.0.1:compile
[INFO] |  |  +- org.glassfish.hk2:hk2-api:jar:2.2.0-b21:compile
[INFO] |  |  +- org.glassfish.hk2.external:javax.inject:jar:2.2.0-b21:compile
[INFO] |  |  +- org.glassfish.hk2:hk2-locator:jar:2.2.0-b21:compile
[INFO] |  |  |  +- org.glassfish.hk2.external:asm-all-repackaged:jar:2.2.0-b21:compile
[INFO] |  |  |  \- org.glassfish.hk2.external:cglib:jar:2.2.0-b21:compile
[INFO] |  |  \- org.glassfish.hk2:osgi-resource-locator:jar:1.0.1:compile
[INFO] |  +- org.glassfish.jersey.ext:jersey-entity-filtering:jar:2.4.1:compile
[INFO] |  +- org.eclipse.persistence:org.eclipse.persistence.moxy:jar:2.5.0:compile
[INFO] |  |  \- org.eclipse.persistence:org.eclipse.persistence.core:jar:2.5.0:compile
[INFO] |  |     \- org.eclipse.persistence:org.eclipse.persistence.asm:jar:2.5.0:compile
[INFO] |  \- org.eclipse.persistence:org.eclipse.persistence.antlr:jar:2.5.0:compile
[INFO] +- cz.muni.fi.pa165:libbackend:jar:1.0-SNAPSHOT:compile
[INFO] |  +- org.hibernate:hibernate-entitymanager:jar:3.3.2.GA:compile
[INFO] |  |  +- org.hibernate:hibernate-annotations:jar:3.3.1.GA:compile
[INFO] |  |  +- org.hibernate:hibernate-commons-annotations:jar:3.0.0.ga:compile
[INFO] |  |  \- javassist:javassist:jar:3.4.GA:compile
[INFO] |  +- org.apache.derby:derbyclient:jar:10.10.1.1:compile
[INFO] |  +- org.hibernate:hibernate:jar:3.2.5.ga:compile
[INFO] |  |  +- net.sf.ehcache:ehcache:jar:1.2.3:compile
[INFO] |  |  +- asm:asm-attrs:jar:1.5.3:compile
[INFO] |  |  +- dom4j:dom4j:jar:1.6.1:compile
[INFO] |  |  +- antlr:antlr:jar:2.7.6:compile
[INFO] |  |  +- cglib:cglib:jar:2.1_3:compile
[INFO] |  |  +- asm:asm:jar:1.5.3:compile
[INFO] |  |  \- commons-collections:commons-collections:jar:2.1.1:compile
[INFO] |  +- org.hibernate:ejb3-persistence:jar:1.0.1.GA:compile
[INFO] |  +- javax.sql:jdbc-stdext:jar:2.0:compile
[INFO] |  +- javax.transaction:jta:jar:1.0.1B:compile
[INFO] |  +- org.apache.derby:derby:jar:10.10.1.1:compile
[INFO] |  +- joda-time:joda-time:jar:2.3:compile
[INFO] |  +- org.springframework:spring-jdbc:jar:3.1.1.RELEASE:compile
[INFO] |  +- org.springframework:spring-jms:jar:3.1.1.RELEASE:compile
[INFO] |  \- org.springframework:spring-orm:jar:3.1.1.RELEASE:compile
[INFO] +- net.sourceforge.stripes:stripes:jar:1.5.7:compile
[INFO] |  \- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] +- javax.servlet:jstl:jar:1.2:compile
[INFO] +- joda-time:joda-time-jsptags:jar:1.1.1:compile
[INFO] +- cz.muni.fi.pa165:api:jar:1.0-SNAPSHOT:compile
[INFO] +- org.glassfish.jersey.ext:jersey-spring3:jar:2.4.1:compile
[INFO] |  +- org.glassfish.jersey.core:jersey-server:jar:2.4.1:compile
[INFO] |  |  +- org.glassfish.jersey.core:jersey-client:jar:2.4.1:compile
[INFO] |  |  \- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] |  +- org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.4.1:compile
[INFO] |  +- org.glassfish.hk2:hk2:jar:2.2.0-b21:compile
[INFO] |  |  +- org.glassfish.hk2:hk2-utils:jar:2.2.0-b21:compile
[INFO] |  |  |  \- javax.inject:javax.inject:jar:1:compile
[INFO] |  |  +- org.glassfish.hk2:config-types:jar:2.2.0-b21:compile
[INFO] |  |  +- org.glassfish.hk2:core:jar:2.2.0-b21:compile
[INFO] |  |  +- org.glassfish.hk2:hk2-config:jar:2.2.0-b21:compile
[INFO] |  |  |  +- org.jvnet:tiger-types:jar:1.4:compile
[INFO] |  |  |  \- org.glassfish.hk2.external:bean-validator:jar:2.2.0-b21:compile
[INFO] |  |  +- org.glassfish.hk2:hk2-runlevel:jar:2.2.0-b21:compile
[INFO] |  |  \- org.glassfish.hk2:class-model:jar:2.2.0-b21:compile
[INFO] |  |     \- junit:junit:jar:4.3.1:compile
[INFO] |  +- org.glassfish.hk2:spring-bridge:jar:2.2.0-b21:compile
[INFO] |  \- javax.ws.rs:javax.ws.rs-api:jar:2.0:compile
[INFO] +- com.google.code.gson:gson:jar:2.2.4:compile
[INFO] \- javax:javaee-web-api:jar:6.0:provided (scope not updated to compile)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.262s
[INFO] Finished at: Tue Jan 21 14:12:37 CET 2014
[INFO] Final Memory: 11M/168M
[INFO] ------------------------------------------------------------------------