404例外与宁静的web服务泽西

问题描述:

我刚刚在我的mac(os x狮子)安装netbeans,我试图用泽西岛创建一个宁静的web服务。404例外与宁静的web服务泽西

当我去我的本地主机:8080/HelloWorld /测试/ printHello我得到一个404例外......所以我想我会看看我的web.xml ..但我无法找到该文件。

任何指针,我应该看看,我应该做什么?我的java类在下面发布。

@Path("/test") 
public class helloworld { 

    @GET 
    @Path("printHello") 
    @Produces("text/plain") 
    public String printHello() { 
     return "Hello there!"; 
    } 
} 
+0

如果您没有web.xml,您将如何部署到您的应用程序服务器?你正在使用哪一个?您应该首先配置Jersey servlet。 – 2012-08-03 06:56:16

+0

我正在使用glassfish,并且我配置了Jersey Servlet – user1467188 2012-08-03 17:20:52

+0

您是否仍然有问题? – Ruwantha 2012-08-17 10:55:26

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

但是,当在Netbeans/Eclipse中创建一个Web项目时,我们将会给出一个选项来使用部署描述符。如果没有选项,我们可以显式创建web.xml。是的,我们需要一个web.xml来使用Jersey来完成稳定的Web服务,因为它的API公开了ServletContainer,它负责基于URL的类映射。

希望这会有所帮助!

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