2017-02-02 65 views
1

我有一個簡單的項目RESTful API使用澤西框架和Netbean SDK。REST風格的澤西多個資源和包

我創建了一個資源,並把它放在不是默認不同的包,還指定了包中的XML文件: The resource is CustomerProfile, and package is Profile. Package "Profile" is not part of the default package 這裏是我的XML:

<servlet> 
    <servlet-name>Jersey Web Application</servlet-name> 
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
    <init-param> 
     <param-name>jersey.config.server.provider.packages</param-name> 
     <param-value>trial1.jerseytutorial</param-value> 
    </init-param> 
    <init-param> 
     <param-name>jersey.config.server.provider.packages</param-name> 
     <param-value>Profile</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Jersey Web Application</servlet-name> 
    <url-pattern>/webapi/*</url-pattern> 
</servlet-mapping> 

我也定義在資源CustomerProfile.java

package Profile; 
import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 
@Path("/CustomerProfile")  // the URL path leading to the resource 
public class CustomerProfile { 
@GET   // map the method to HTTP Get 
@Produces(MediaType.TEXT_PLAIN) // tell the return format of the request 
    public String getProfile() { 
     return "Got the profile !"; 
    } 
} 

然而,當我瀏覽到http://localhost:8080/JerseyTutorial/webapi/CustomerProfile,我得到404錯誤。我懷疑我的XML servlet是不正確的。

回答

0

使用逗號(或分號)分隔符

<init-param> 
    <param-name>jersey.config.server.provider.packages</param-name> 
    <param-value> 
     trial1.jerseytutorial, 
     Profile 
    </param-value> 
</init-param> 

還沒有嘗試過,但我想即使新線分離(而不需要逗號或者分號)甚至工程。

+0

感謝您的嘗試。它還沒有工作。 –

+0

'trial1.jerseytutorial'中的類是否工作? –

+0

它確實有效。看起來我創建了一個「子包」,但不是一個包。所以,我應該只用: ​​jersey.config.server.provider.packages trial1.jerseytutorial 我的Java類,我能說出我的包爲:trial1 .jerseytutorial.Profile 而不是隻是個人資料。 我仍然困惑於如何創建一個不同的包,而不是一個子包 –