为了账号安全,请及时绑定邮箱和手机立即绑定

java.lang.ClassNotFoundException:com.sun.jersey

java.lang.ClassNotFoundException:com.sun.jersey

RISEBY 2019-09-02 14:59:53
我正在尝试使用Jersey + Google应用引擎构建一个简单的hello world应用程序两天。对于简单的AppEngine项目,我遵循了这些教程,两者都很好用 https://developers.google.com/appengine/docs/java/gettingstarted/creating https://developers.google.com/appengine/docs/java/webtoolsplatform但现在我正在尝试添加Jersey并遵循本教程http://www.vogella.com/articles/REST/article.html。但服务器一直在给我java.lang.ClassNotFoundException:com.sun.jersey.spi.container.servlet.ServletContainer当我在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>TestServer</display-name><servlet>    <servlet-name>Jersey REST Service</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.test.myproject</param-value>    </init-param>    <load-on-startup>1</load-on-startup></servlet><servlet-mapping>    <servlet-name>Jersey REST Service</servlet-name>    <url-pattern>/rest/*</url-pattern></servlet-mapping></web-app>我JAX-RS 2.1 RI bundle从这里下载了Jersey ,并WEB-INF/lib在教程中描述了将所有jar文件添加到文件夹中。即使两天后也没有任何效果。我已经在Google上搜索了几次,显然使用Maven的人已经解决了它,但我没有使用Maven也没有写过那个教程的人。只是为了检查是否com.sun.jersey.spi.container.servlet.ServletContainer存在于导入中 Jersey jars我试图在Java中编写这个完全限定的名称并让intellisense完成名称,但我无法获得任何intellisense,com.sun.je所以我的最后猜测是在最新的Jersey构建中有一些包重新排列并且jersey不再在里面com.sun。我很累,我很感激任何帮助。
查看完整描述

3 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

你已经下载了Jersey 2(JAX-RS 2的RI)。您所指的教程使用Jersey 1.从(这里)下载Jersey 1.17.1 ,应该足够了。


Jersey 1使用com.sun.jersey,而Jersey 2则使用org.glassfish.jersey例外。


另外请注意,也init-param开始com.sun.jersey将不会受到新泽西州2所识别。


编辑

在Jersey 2中注册资源和提供程序包含有关如何在Jersey 2中注册类/实例的其他信息。


查看完整回答
反对 回复 2019-09-02
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

如果你使用的是jersey 2.x,那么你需要在web.xml中进行不同的配置,因为servlet类正在改变。您可以使用以下配置更新web.xml。


    <servlet>

    <servlet-name>myrest</servlet-name>

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

    <init-param>

      <param-name>jersey.config.server.provider.packages</param-name>

      <param-value>your.package.path</param-value>

    </init-param>

    <init-param>

     <param-name>unit:WidgetPU</param-name>

     <param-value>persistence/widget</param-value>

    </init-param>

    <load-on-startup>1</load-on-startup>

  </servlet>

  <servlet-mapping>

    <servlet-name>myrest</servlet-name>

    <url-pattern>/rest/*</url-pattern>

  </servlet-mapping>


查看完整回答
反对 回复 2019-09-02
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

在pom中添加它


<dependency>

    <groupId>com.sun.jersey</groupId>

    <artifactId>jersey-server</artifactId>

    <version>1.17.1</version>

</dependency>

<dependency>

    <groupId>com.sun.jersey</groupId>

    <artifactId>jersey-core</artifactId>

    <version>1.17.1</version>

</dependency>

<dependency>

    <groupId>com.sun.jersey</groupId>

    <artifactId>jersey-servlet</artifactId>

    <version>1.17.1</version>

</dependency>


查看完整回答
反对 回复 2019-09-02
  • 3 回答
  • 0 关注
  • 821 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信