我刚刚在我的mac上安装了netbeans(os x lion),我正在尝试使用jersey创建一个安静的Web服务。
当我去我的localhost时:8080 / HelloWorld / test / printHello我得到了404例外...所以我想我会查看我的web.xml ..但是我找不到该文件。
我应该看哪些指针以及我应该做什么?我的java类发布在下面。
@Path("/test")
public class helloworld {
@GET
@Path("printHello")
@Produces("text/plain")
public String printHello() {
return "Hello there!";
}
}
答案 0 :(得分:4)
根据servlet 3.0规范,web.xml是可选的。
但是,在Netbeans / Eclipse中创建Web项目时,我们将获得一个部署描述符的选项。如果没有选项,我们可以显式创建web.xml。是的,我们需要一个web.xml来使用Jersey来执行restful Web服务,因为它的API暴露了ServletContainer,它负责基于URL的类映射。
希望这有帮助!
答案 1 :(得分:1)
在Netbeans中,web.xml位于
中WAR-Project with Maven
- Web Pages
- WEB-INF
- web.xml
在文件夹结构中,它位于:
WAR-Project with Maven
- src
- main
- webapp
- WEB-INF
- web.xml
您可以在那里定义Jersey Servlet:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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">
<!-- Jersey -->
<servlet>
<servlet-name>Jersey Web Application</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>package.path.to.your.rest.service;</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
现在,您可以在以下URL访问REST服务:
localhost:8080/HelloWorld/rest/test/printHello