我下面这个教程创建使用新泽西州的REST服务。
有时我无法完全理解本教程的作者表示,但这些是我迄今遵循的步骤:
1) 创建一个动态的Web项目,并把它命名为 : de.vogella.jersey.first
2) 上安装Eclipse Maven依赖
3) 将我的项目的Maven项目(这意味着创建pom.xml文件)
4) 添加必要的依赖在pom.xml
,这样我可以使用平针织,而不必手动添加的jar文件。 我增加了以下XML:
<dependencies>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.17.1</version>
</dependency>
</dependencies>
5)笔者建议创建一个Java类,并给出了一些代码。 我只能假设他要我们在src文件夹中创建一个新包,将其命名为de.vogella.jersey.first
,然后创建一个Java类,并将其命名为Hello
,代码放在那里。 这就是我所做的。
6) 然后,他提出打开web.xml
文件。 即使世界在项目中没有这样的文件,但。 所以我继续前进,创造的这样一个文件WebContent/WEB-INF/lib
路径。 我把他建议的代码。
7) 接着是,我不理解大多数步骤。 他谈到在web.xml
,我们只是增加了更具体,他说:
“参数‘com.sun.jersey.config.property.package’定义了包球衣将查找Web服务类。这个属性必须指向你的资源类。”
8) 最后一步是打开URL http://localhost:8080/de.vogella.jersey.first/rest/hello
,我的浏览器。 但是我得到HTTP Status 404 - /de.vogella.jersey.first/rest/hello
随着我拿什么来代替完全com.sun.jersey.config.property.package
?
是我遵循至今的步骤是正确的,还是我误解的东西吗?
该物业com.sun.jersey.config.property.package
只需要设置为包含Web服务类的包。 在本教程是de.vogella.jersey.first
,你可以看到Hello
类是包下宣布。
换句话说,当你部署应用程序,泽西岛将寻找在包Web服务类de.vogella.jersey.first
,在这种情况下,它会找到类Hello
被宣布与javax.ws.rs.Path
注解,并创建一个Web服务端点侦听已声明与URL @Path
。
但是,我从来没有设置这样的事情对我的球衣项目。 我只是把我的Web服务类src
文件夹,新泽西州承认他们不管我把它包在他们里面。 这是最低配置,我有泽西岛项目web.xml
:
<servlet>
<description>JAX-RS Tools Generated - Do not modify</description>
<servlet-name>JAX-RS 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.your.webservice.classes</param-value>
</init-param>
-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JAX-RS Servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
此外,如果你不喜欢Maven项目,只需创建一个简单的动态Web项目和复制新泽西州的JAR到WebContent/WEB-INF/lib
。
此外,作为Qwerky建议, web.xml
必须在WebContent/WEB-INF/
和.jar
文件应该被复制到WebContent/WEB-INF/lib
。
除此之外,所描述的过程看起来很好!
有关信息,如果您使用的是新泽西州2这个类已被替换jersey.config.server.provider.packages
让你的资源配置是这样的:
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>de.vogella.jersey.todo.resources</param-value>
</init-param>