0

我剛剛在我的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

回答

4

根據servlet 3.0規範,web.xml是可選的。

但是,當在Netbeans/Eclipse中創建一個Web項目時,我們將會給出一個選項來使用部署描述符。如果沒有選項,我們可以顯式創建web.xml。是的,我們需要一個web.xml來使用Jersey來完成穩定的Web服務,因爲它的API公開了ServletContainer,它負責基於URL的類映射。

希望這會有所幫助!

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