RestEasy путь решения - PullRequest
       4

RestEasy путь решения

3 голосов
/ 28 января 2011

Я получаю что-то вроде этого

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 должна существовать либо в классе, либо в методе ресурса. Если он существует как для класса, так и для метода, относительный путь к методу ресурса является объединением класса и метода.

Ответы [ 2 ]

1 голос
/ 28 января 2011

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

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

EDIT:

Итак, ваш проект развернут с именем контекста myapp + у вас есть префикс служб + путь, определенный в классе ресурсов. + Отображение сервлета равно / *, поэтому / myapp / services / path должен работать.

Вы можете увеличить уровень регистрации классов рестети, чтобы увидеть, что не так. или в режиме отладки вы можете увидеть, какой путь запрашивается в 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 голосов
/ 28 января 2011

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

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