0

我刚刚在我的mac(os x lion)上安装了netbeans,我正在尝试用球衣创建一个宁静的网络服务。

当我转到我的 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!";
    }
}
4

2 回答 2

4

根据 servlet 3.0 规范,web.xml 是可选的。

然而,在 Netbeans/Eclipse 中创建 Web 项目时,我们将获得一个选项来拥有一个部署描述符。如果没有选项,我们可以显式创建 web.xml。是的,我们需要一个 web.xml 来使用 Jersey 来提供宁静的 Web 服务,因为它的 API 公开了 ServletContainer,它负责基于 URL 的类映射。

希望这可以帮助!

于 2012-11-05T18:21:01.247 回答
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
于 2014-02-23T15:00:46.727 回答