2017-07-03 50 views
1

我想用端點路徑 運行我的Tomcat項目如下因素是我的兩個java文件的Tomcat 7 - @ GET方法與@ApplicationPath - 狀態404錯誤

這是我的應用程序類

package app; 

    import javax.ws.rs.ApplicationPath; 
    import javax.ws.rs.core.Application; 

    @ApplicationPath("/t") 
    public class App extends Application{ 

    } 

這是端點類

package controllers; 

import java.util.List; 

import javax.ws.rs.ApplicationPath; 
import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

import dao.IEntityDAO; 
import daoimpl.EntityDAOImpl; 
import dto.Contacts; 
import view.ContactView; 

@ApplicationPath("/t1") 
public class ContactController { 

    @Path("/hi") 
    @GET 
    @Produces(MediaType.TEXT_PLAIN) 
    public String getpassword() 
    { 
     return "Hiii"; 
    } 

    @Path("/t2") 
    @GET() 
    @Produces(MediaType.APPLICATION_JSON) 
    public List<ContactView> getallEntity(){ 

     IEntityDAO obj = new EntityDAOImpl(); 

     return obj.getallEntity(); 
    }  


} 

我的Tomcat 7運行 但是當我通過以下路徑

Tomcat上運行
http://localhost:8006/ContactApp/t/t1/hi 

它顯示以下錯誤

HTTP Status 404 - /ContactApp/t/t1/hi 


type Status report 

message /ContactApp/t/t1/hi 

description The requested resource is not available. 


Apache Tomcat/7.0.47 

任何人都可以幫助?

回答

3

@ApplicationPath可僅被應用到的應用的一個子類:

標識作爲基本URI由路徑提供的所有資源 的URI的應用程序的路徑。可能僅適用於 應用程序的子類。

對於這一個:

@ApplicationPath("/t") 
public class App extends Application{ 

} 

這是好的。

但它是不是不應該@ApplicationPath申報ContactController情況:

@ApplicationPath("/t1") 
public class ContactController { 

@Path(沒有斜線):

@Path("t1") 
public class ContactController { 

路徑的javadoc提取物:

標識資源類或類方法將會使用的URI路徑l 服務請求。 .... 路徑是相對的。對於註釋類,基本URI是 應用程序路徑,請參閱ApplicationPath。

最後,你應該刪除爲您的REST方法@Path領先斜線:@Path("/t1")

不要求爲Path規範解釋說,主要/被忽略,並且該基地URI作爲處理如果增加/

對於抵靠基部絕對值化的路徑URI的目的,一個 「/」開頭的路徑被忽略,並且基URI被視爲好像它們 在「/」

結束因此,這些:

@Path("/hi") 
... 
@Path("/t2") 

應改爲:

@Path("hi") 
... 
@Path("t2") 
+0

thans @davidxx它爲我工作 –

+0

歡迎您:) – davidxxx