严重:Servlet/JAXRS-HelloWorld抛出了load()异常java.lang.ClassNotFoundException:com.sun.jersey.spi.container.servlet.ServletContainer

DJ-*_*DJ- 0 eclipse rest tomcat jersey restful-url

我阅读了很多与此问题相关的帖子,但无法获得任何帮助.

错误感谢是否有人可以帮助我.

在此输入图像描述

这就是我的POM和网络的样子.我已经尝试将所需的war文件复制到C:\ appache tomcat 7但没有运气.即使在日食中部署它也会给我带来同样的错误.

WEb 在此输入图像描述

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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.tutorialacademy.rest</groupId>
  <artifactId>helloworld</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>helloworld Maven Webapp</name>
  <url>http://maven.apache.org</url>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <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>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-server</artifactId>
            <version>1.19</version>
        </dependency>
     <dependency>
    <groupId>com.sun.jersey.contribs</groupId>
    <artifactId>jersey-apache-client</artifactId>
    <version>1.19</version>
</dependency>
    </dependencies>



    <build>
        <sourceDirectory>src/main/java</sourceDirectory>

        <plugins>

            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <warSourceDirectory>WebContent</warSourceDirectory>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>

            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
               <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
               </configuration>
          </plugin>


        </plugins>

    </build>
</project>
Run Code Online (Sandbox Code Playgroud)

cas*_*lin 5

除了例外,com.sun.jersey.spi.container.servlet.ServletContainer您的类路径中似乎没有该类.

请注意,Jersey 1.xJersey 2.x使用不同的包名称:

  • 泽西岛1.x: com.sun.jersey
  • 泽西2.x: org.glassfish.jersey

所以,我理解你正在使用泽西1.x的.

泽西岛1.x的依赖性

要使用Jersey 1.x,您需要具备以下依赖性pom.xml:

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-server</artifactId>
    <version>1.19</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

要阅读有关Jersey 1.x依赖项的更多信息,请查看文档.

您可以检查最新版本jersey-server artifactIdMaven仓库.

泽西岛2.x的依赖性

如果要使用Jersey 2.x,则必须将以下依赖项添加到pom.xml:

<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <!-- if your container implements Servlet API older than 3.0, 
         use "jersey-container-servlet-core"  -->
    <artifactId>jersey-container-servlet</artifactId>
    <version>2.22.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

您可以检查最新版本jersey-container-servlet artifactIdMaven仓库.

阅读文档中有关Jersey 2.x依赖项的更多信息.


UPDATE

如果可以的话,我不建议使用泽西2.x的,而不是新泽西1.x的.

为此,请使用以下内容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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.tutorialacademy.rest</groupId>
    <artifactId>helloworld</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>Hello World</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <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>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <!-- if your container implements Servlet API older than 3.0, 
                 use "jersey-container-servlet-core"  -->
            <artifactId>jersey-container-servlet</artifactId>
            <version>2.22.1</version>
        </dependency>
    </dependencies>

    <build>
        <sourceDirectory>src/main/java</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <warSourceDirectory>WebContent</warSourceDirectory>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
Run Code Online (Sandbox Code Playgroud)

以下内容web.xml:

<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_3_0.xsd"
    version="3.0">

</web-app>
Run Code Online (Sandbox Code Playgroud)