使用MAVEN

时间:2016-02-05 18:59:56

标签: eclipse maven exception jersey

当我尝试使用Jersey在Eclipse中构建一个简单的测试应用程序时。当我尝试运行我的应用程序时,我得到了这个例外:

java.lang.ClassNotFoundException:com.sun.jersey.spi.container.servlet.ServletContainer

我已经在Stack Overflow上研究了这个问题的答案,并验证了这些:

确实,jersey-server中不存在缺少的类。该类现在存在于jersey-servlet中(注意“servlet”,而不是“服务器”)。所以我的maven依赖现在看起来像这样:

<dependencies>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-core</artifactId>
        <version>1.19</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>1.19</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.19</version>
    </dependency>
</dependencies>

我的web.xml看起来像这样

<servlet>
    <servlet-name>jersey-helloworld-serlvet</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.javacodegeeks.enterprise.rest.jersey</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>jersey-helloworld-serlvet</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

我现在可以在Eclipse中查看我的项目,在Java Resources / Libraries / Maven Dependencies下我可以看到文件jersey-servlet-1.19.jar,在那个jar中我可以看到com.sun.jersey.spi.container .servlet包,在那个包中我可以看到ServletContainer.class文件。

所以一切看起来都是正确的,但是当服务器(apache 7.0)启动时,它无法找到明显存在的类。

感谢您提出任何建议。

2 个答案:

答案 0 :(得分:0)

这是一个日食设置问题,而不是泽西岛问题。

从这个帖子ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer

右键单击您的eclipse项目Properties - &gt;部署组件 - &gt;添加 - &gt; Java构建路径条目 - &gt; Maven依赖关系 - &gt;完。

因此Eclipse在启动Apache时没有使用maven依赖项。

答案 1 :(得分:0)

我通过如下更改依存关系来解决它。

<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>

这与maven库具有的结构相同。