Java 严重:加载WebappClassLoader时出错

Java 严重:加载WebappClassLoader时出错,java,web-services,maven,tomcat,servlets,Java,Web Services,Maven,Tomcat,Servlets,我正在使用JAX-RSRESTEasy和java开发一个Web服务。 我首先使用了jersey_bundle-1.17.1 maven,如这里所述。在此之前,我使用了jersey_bundle-1.12。它们都不起作用。之后,根据错误,我在jarfiles中搜索了com.sun.jersey.spi.container.servlet.ServletContainer包,并在那里找到了它。但我使用的是maven,我在maven中搜索,却没有找到它在那里(但我把它们添加到了我的pom.xml中)。

我正在使用JAX-RSRESTEasy和java开发一个Web服务。 我首先使用了jersey_bundle-1.17.1 maven,如这里所述。在此之前,我使用了jersey_bundle-1.12。它们都不起作用。之后,根据错误,我在jarfiles中搜索了com.sun.jersey.spi.container.servlet.ServletContainer包,并在那里找到了它。但我使用的是maven,我在maven中搜索,却没有找到它在那里(但我把它们添加到了我的pom.xml中)。这是我的问题吗?如果是如何解决那个错误?或者我的问题是什么?我对此没有任何线索(花了14个多小时)。任何帮助都是非常值得的。。。 注意:我使用的是tomcat-V6.0服务器

堆栈跟踪

pr 16, 2015 11:43:54 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre7/bin/client;C:/Program Files/Java/jre7/bin;C:/Program Files/Java/jre7/lib/i386;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;D:\java\eclipse\eclipse;;.
Apr 16, 2015 11:43:54 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:SnapshotHealthApp' did not find a matching property.
Apr 16, 2015 11:43:54 AM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-9999
Apr 16, 2015 11:43:54 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 439 ms
Apr 16, 2015 11:43:54 AM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Apr 16, 2015 11:43:54 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.43
Apr 16, 2015 11:43:55 AM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet jersey-servlet as unavailable
Apr 16, 2015 11:43:55 AM org.apache.catalina.core.ApplicationContext log
SEVERE: Error loading WebappClassLoader
  context: /SnapshotHealthApp
  delegate: false
  repositories:
    /WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@5a384a
 com.sun.jersey.spi.container.servlet.ServletContainer
java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1128)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4425)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4738)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:822)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:759)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

Apr 16, 2015 11:43:55 AM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /SnapshotHealthApp threw load() exception
java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1128)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4425)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4738)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:822)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:759)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

Apr 16, 2015 11:43:55 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-9999
Apr 16, 2015 11:43:55 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Apr 16, 2015 11:43:55 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/32  config=null
Apr 16, 2015 11:43:55 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 276 ms
Pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>snapshot</groupId>
  <artifactId>snapshot</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

  <repositories>
       <repository>
         <id>maven2-repository.java.net</id>
          <name>Java.net Repository for Maven</name>
          <url>http://download.java.net/maven/2/</url>
          <layout>default</layout>
       </repository>
</repositories>

<dependencies>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>1.0.6</version>
</dependency>

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-servlet</artifactId>
    <version>1.17.1</version>
</dependency>


<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>jsr311-api</artifactId>
    <version>1.1.1</version>
</dependency>

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-client</artifactId>
    <version>1.9.1</version>
</dependency>
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>1.14</version>
</dependency>

       <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.8.2</version>
          <scope>test</scope>
       </dependency>

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.2.4</version>
</dependency>

 <dependency>
    <groupId>com.googlecode.json-simple</groupId>
    <artifactId>json-simple</artifactId>
    <version>1.1</version>
  </dependency>
  <dependency>
    <groupId>com.codesnippets4all</groupId>
    <artifactId>quick-json</artifactId>
    <version>1.0.4</version>
</dependency>

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20141113</version>
</dependency>
<dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.8.5</version>
    </dependency>
<dependency>
    <groupId>javax.json</groupId>
    <artifactId>javax.json-api</artifactId>
    <version>1.0</version>
</dependency>
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-server</artifactId>
    <version>1.19</version>
</dependency>



</dependencies>

<build>
   <finalName>SnapshotHealthApp</finalName>
   <plugins>
      <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
             <configuration>
                <compilerVersion>1.5</compilerVersion>
                <source>1.5</source>
                <target>1.5</target>
             </configuration>
       </plugin>
   </plugins>
</build>
</project>

4.0.0
快照
快照
0.0.1-快照
战争
maven2-repository.java.net
Maven的Java.net存储库
http://download.java.net/maven/2/
违约
com.sun.xml.bind
jaxb impl
1.0.6
泽西岛
泽西servlet
1.17.1
javax.ws.rs
jsr311 api
1.1.1
泽西岛
泽西岛客户
1.9.1
泽西岛
泽西json
1.14
朱尼特
朱尼特
4.8.2
测试
com.google.code.gson
格森
2.2.4
com.googlecode.json-simple
简单json
1.1
com.code代码片段4all
快速json
1.0.4
org.json
json
20141113
org.codehaus.jackson
杰克逊地图绘制者
1.8.5
javax.json
javax.json-api
1
泽西岛
泽西服务器
1.19
SnapshotHealthApp
maven编译器插件
1.5
1.5
1.5
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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>SnapshotHealthApp</display-name>
  <servlet>

    <servlet-name>jersey-servlet</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>com.sun.jersey.config.property.packages</param-name>
      <param-value>com.snapshothealthapp.controller</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>jersey-servlet</servlet-name>
    <url-pattern>/api/*</url-pattern>
  </servlet-mapping>
</web-app>

SnapshotHealthApp
泽西servlet
com.sun.jersey.spi.container.servlet.ServletContainer
com.sun.jersey.config.property.packages
com.snapshothealthapp.controller
1.
泽西servlet
/原料药/*

请打开WAR文件并检查是否存在所需的新泽西依赖项,好吗?我觉得你的POM不错。TimBiegeleisen我会检查并重播。我还有一个dobt。你能检查我的web.xml来检查我的servlet名称吗?特别是我定义的我的…。这件事在我的应用程序中显示为错误。在其他地方,我发现org.glassfish.etc…包含com.sun.jersey.spi.container.servlet.ServletContainer。我正在使用tomcat 6.0你的
web.xml
外观好的如果这是一个问题,那么您在尝试实例化
ServletContainer
类时会遇到错误。请检查正在部署的战争;我敢打赌它缺少Jersey依赖项。好的,Tim Biegeleisen。关于尝试实例化ServletContainer时出错的问题…谢谢。我将检查我的WAR,并肯定会回复…@TimBiegeleisen按照您上面提到的方式提取WAR文件。它显示类、web.xml和库。我的库文件夹为空。