我正在尝试使用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>
Run Code Online (Sandbox Code Playgroud)
我已经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完成名称,但我无法获得任何智能感知,com.sun.je所以我的最后猜测是在最新的Jersey构建中有一些包重新排列并且jersey不再在里面com.sun.我很累,我很感激任何帮助.
我已经阅读了很多帖子,但似乎无法解决我的问题.你也会看到很多帖子与这个帖子非常相似,甚至是同一个教程.即便跟着他们,我似乎无法得到答案.
基本上,我正在尝试遵循以下简单教程:http://www.vogella.com/articles/REST/
我做了一些修改,使其与Jersey 2.x兼容
我正在使用:Eclipse Tomcat 6(在Eclipse中部署/运行)jaxrs-ri-2.0我在Eclipse中启用了JAX-RS Facet
一切都很好构建Tomcat在Eclipse中开始很好我可以通过以下方式获取静态页面内容:
http://localhost:8080/RestTEST2/index.html
但是,当我尝试通过以下方式访问我的服务时:
http://localhost:8080/RestTEST2/jaxrs/hello
我收到404"未找到消息"和"请求的资源(未找到)不可用."
这是我的web.xml,位于/WebContent/WEB-INF/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" 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>TestREST2</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<servlet>
<description>JAX-RS Tools Generated - Do not modify</description>
<servlet-name>JAX-RS Servlet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>TestREST</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JAX-RS Servlet</servlet-name>
<url-pattern>/jaxrs/*</url-pattern>
</servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)
这是我的Java类:
package TestREST;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
// Plain old Java Object it does not extend as class or implements
// an …Run Code Online (Sandbox Code Playgroud) 我正在尝试制作REST Web服务.
我的项目看起来像:

追溯是:
8 déc. 2011 18:31:36 org.apache.catalina.core.AprLifecycleListener init
INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\bin;C:\Program Files\MyEclipse\Common\plugins\com.genuitec.eclipse.easie.tomcat.myeclipse_9.0.0.me201109141806\tomcat\bin
8 déc. 2011 18:31:36 org.apache.coyote.http11.Http11Protocol init
INFO: Initialisation de Coyote HTTP/1.1 sur http-8080
8 déc. 2011 18:31:36 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 394 ms
8 déc. 2011 18:31:37 org.apache.catalina.core.StandardService start
INFO: Démarrage du service Catalina
8 déc. 2011 18:31:37 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.13 …Run Code Online (Sandbox Code Playgroud) 我正在开发Jersey 2.0的休息服务(我从http://repo1.maven.org/maven2/org/glassfish/jersey/bundles/jaxrs-ri/2.5/jaxrs-ri-2.5.zip下载)和我使用Tomcat 7.0.47.我从Eclipse运行Tomcat,我的机器是Mac.
我正在使用Eclipse工具生成WAR并部署服务.
这是我的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"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>MyServices</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.service.services.Services</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)
我将所有泽西罐子包含在WEB-INF/lib中,除了javax.servlet-api-3.0.1.jar它是在Apache/lib中我在Tomcat中部署时,它显示了一个非常奇怪的错误:
Caused by: java.lang.ClassNotFoundException: org.glassfish.jersey.client.ClientConfig
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
... 70 more
Run Code Online (Sandbox Code Playgroud) jersey ×4
eclipse ×3
jersey-2.0 ×2
rest ×2
java ×1
java-ee ×1
servlets ×1
tomcat ×1
tomcat7 ×1
web-services ×1