2011-01-28 4 views
3

я получаю что-то вроде этогоResteasy путь решения

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 

public class xxx 
{ 

    @GET 
    @Path(value = "path1") 
    public Response m1(@QueryParam(value = "a") String a) 
    { 
    ... 
    } 



    @GET 
    @Path(value = "path2") 
    public Response m2(@QueryParam(value = "b") String b) 
    { 
    ... 
    } 

} 

С Resteasy я получаю HTTP Status 404 - Не удалось найти ресурс для относительного каждый раз, когда я пытаюсь получить path1 или Path2 Для экс http://someip:8080/myserv/services/path1?a=asd

Здесь http://docs.jboss.org/resteasy/docs/1.2.GA/userguide/html_single/#Using_Path я прочитал

Символ @ javax.ws.rs.Path аннотаций должен существовать либо в классе и/или метода ресурсов. Если он существует как для класса, так и для метода, относительный путь к ресурсному методу является конкатенацией класса и метода.

ответ

1

Удалить services, если он не является частью вашего отображения сервлета или пути.

(Также более подробную информацию о вашем отображении путь/сервлетов позволит нам лучше понять)

EDIT:

Так ваш проект развертывается с MYAPP имени контекста + у вас есть услуги префикс + путь, определенный в классе ресурсов . + отображение сервлетов/* so/myapp/services/path должно работать.

Вы можете увеличить уровень ведения журнала для классов resteasy, чтобы узнать, что не так. или в режиме отладки вы можете увидеть, что путь запрашивается в PathHelper.replaceEnclosedCurlyBraces

EDIT2:

Если вы автоматическое сканирование, классы должны быть аннотированный с @Provider

Resteasy v1.2.1

@Provider 
@Path("/") 
public class xxx 
{ 

    @GET 
    @Path(value = "path1") 
    public Response m1(@QueryParam(value = "a") String a) 
    { 
    ... 
    } 



    @GET 
    @Path(value = "path2") 
    public Response m2(@QueryParam(value = "b") String b) 
    { 
    ... 
    } 

} 
+0

У меня resteasy.servlet.mapping.prefix установлен/услуги – terry207

+0

PLS см. Выше. – fmucar

+0

и resteasy.scan установлены в true. Что еще я должен сказать вам? – terry207

0

Вы попытались удалить значение = в своей нотации? Я не 100% от того, что значение = используется для, так как я совершенно новой для JAX-RS, но, может быть, попробовать просто делает:

@GET 
@Path("path1") 
public Response m1(@QueryParam(value = "a") String a) 
{ 
    ... 
} 
+0

Я думаю, что это нормально – terry207

+0

Если это не сработает, вы можете проверить, что ваше сопоставление сервлета в файле web.xml JAX-RS REST Servlet/services/* Mike

+0

Удаление значения 'value =' не имеет значения, оно по умолчанию. –

Смежные вопросы