2017-02-02 12 views
1

У меня есть простой проект RESTful API с использованием фреймворка Jersey и Netbean SDK.RESTful Jersey несколько ресурсов и пакет

Я создал ресурс и поместить его в другой пакет, кроме по умолчанию, а также указанный пакет в файле 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-сервлет не прав.

ответ

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 вместо простого профиля. Я все еще смущен тем, как создать другой пакет, а не подпакет, хотя –