簡體   English   中英

Spring Jersey 2.7:java.lang.ClassNotFoundException:com.sun.jersey.spi.spring.container.servlet.SpringServlet

[英]Spring Jersey 2.7: java.lang.ClassNotFoundException: com.sun.jersey.spi.spring.container.servlet.SpringServlet

我指的是這篇文章

我的web.xml看起來像

<web-app>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>


    <servlet>
        <servlet-name>InventoryApplication</servlet-name>
        <servlet-class>
            com.sun.jersey.spi.spring.container.servlet.SpringServlet
        </servlet-class>
        <init-param>
            <param-name>
                com.sun.jersey.config.property.packages
            </param-name>
            <param-value>com.org.me_services.inventory.services</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>InventoryApplication</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
</web-app>

和Maven依賴為

<dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-server</artifactId>
            <version>2.7</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.0.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.ext</groupId>
            <artifactId>jersey-spring3</artifactId>
            <version>2.8</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
                <!--
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-web</artifactId>
                </exclusion>
-->
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-beans</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                    <!--<artifactId>*</artifactId>-->
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey.test.framework</groupId>
            <artifactId>jersey-test-framework</artifactId>
            <version>1.0.3.1</version>
            <scope>test</scope>
        </dependency>

資源類是

@Component
@Path("/inv")
public class HelloResource {

    @GET
    @Path("/hello")
    public Response hello() {
        System.out.println("REQUEST RECEIVED");
        return Response.accepted().build();

    }
}

我將其部署在Tomcat 7x並看到如下錯誤

[INFO] [talledLocalContainer] INFO: Marking servlet com.org.me_services.inventory.services.InventoryApplication as unavailable
[INFO] [talledLocalContainer] May 04, 2014 9:52:03 AM org.apache.catalina.core.StandardContext loadOnStartup
[INFO] [talledLocalContainer] SEVERE: Servlet /services threw load() exception
[INFO] [talledLocalContainer] java.lang.ClassNotFoundException: com.sun.jersey.spi.spring.container.servlet.SpringServlet
[INFO] [talledLocalContainer]   at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
[INFO] [talledLocalContainer]   at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:529)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:511)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1148)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5210)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5493)
[INFO] [talledLocalContainer]   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1073)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
[INFO] [talledLocalContainer]   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
[INFO] [talledLocalContainer]   at java.util.concurrent.FutureTask.run(FutureTask.java:262)
[INFO] [talledLocalContainer]   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[INFO] [talledLocalContainer]   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[INFO] [talledLocalContainer]   at java.lang.Thread.run(Thread.java:745)
[INFO] [talledLocalContainer] 

將所有jar放在lib文件夾中,不要從構建路徑中選擇外部jar,您必須將所有需要的jar放在其中

WebContent \\ WEB-INF \\ lib

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM