2016-12-23 48 views
1

我在netbeans中創建了新的web項目(新項目-java web-web應用程序||名稱:測試||服務器:glassFish服務器4.1.1 || JavaEE版本:JavaEE 7 web || ContextPath :/測試)找不到路由javaEE

它生成html文件,我添加簡單的ajax調用服務器。

<html> 
    <head> 
     <title>TODO supply a title</title> 
     <meta charset="UTF-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    </head> 
    <body> 
     <div>TODO write content</div> 
     <script> 
      fetch('/Test/name').then(function(x){ 
       console.log(x) 
      }) 
     </script> 
    </body> 
</html> 

現在(無腳本標籤)當我運行該項目,它thrwos我的

localhost:8080/Test 

現在我創建一個新的Java類

@Path("/Test") 
@Produces("text/plain") 
public class RequestClass { 
    private String name = "MyName"; 
    private String age = "MyAge"; 
    @GET 
    @Path("/name") 
    @Produces("text/plain") 
    public String getName(){ 
     return this.name; 
    } 
    @GET 
    @Path("/age") 
    @Produces("text/plain") 
    public String getAge(){ 
     return this.age; 
    } 
} 

現在,當我構建和運行項目,服務器以404響應

http://localhost:8080/Test/name加載資源失敗:服務器響應一個sta 404的404(未找到)

爲什麼會發生這種情況?路線是正確的,爲什麼找不到它?

我試圖修復它一段時間,但無法找到任何有關它。

我嘗試使用剛剛

fetch('/name').then(function(x){ 
     console.log(x) 
    }) 

但沒有工作過。

感謝您的幫助!

回答

3

什麼是您的應用程序名稱或應用程序上下文根?你需要讓你的應用程序上下文根在URL中工作,E.g域:端口//路線,爲你的情況下,這將是http://localhost:8080/application-context-root/Test/name

新澤西配置

<servlet> 
    <servlet-name>jersey-serlvet</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.mkyong.rest</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>jersey-serlvet</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 
+0

我在哪裏可以找到它? – Johnyb

+0

在eclipse goto項目屬性中,然後轉到web項目設置,你會發現上下文根.. –

+0

你正在使用哪些工具和框架? –