2017-02-02 43 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 而不是只是个人资料。 我仍然困惑于如何创建一个不同的包,而不是一个子包 –