【问题标题】:Java EE - Can't find GET methodJava EE - 找不到 GET 方法
【发布时间】:2017-12-02 10:23:59
【问题描述】:

我有以下资源:

@Path("")
public class ReviewsResource {

  @Context
  private UriInfo context;

  @EJB
  private ReviewsReadBeanRemote reviewReadServices;

  @EJB
  private ReviewsBeanRemote reviewServices;

  public ReviewsResource() {
  }

  @GET
  @AuthenticateUser
  @Produces({MediaType.APPLICATION_JSON})
  @Path("cadets/{id}/reviews")
  public Response getApprovedReviewsByCadet(@PathParam("id") Long cadetId)
          throws EnviosYaException {
    return Response.ok(reviewReadServices.getReviewsByCadet(cadetId, State.APPROVED)).build();
  }

  @GET
  @AuthenticateAdministrator
  @Produces({MediaType.APPLICATION_JSON})
  @Path("reviews")
  public Response getReviews(@QueryParam("state") String state,
          @QueryParam("start") Date start, @QueryParam("end") Date end)
          throws EnviosYaException {
    State stateValue = null;
    if (state != null && !state.isEmpty()) {
      stateValue = State.valueOf(state);
    }
    return Response.ok(reviewReadServices.getReviews(stateValue, start, end)).build();
  }

  @GET
  @AuthenticateUser
  @Produces({MediaType.APPLICATION_JSON})
  @Path("clients/{id}/shipments")
  public Response getShipmentsPendingReviewByClient(@PathParam("id") Long clientId)
          throws EnviosYaException {
    return Response.ok(reviewReadServices.getShipmentsPendingReviewsByClient(clientId)).build();
  }
}

我可以像这样使用getReviews

https://localhost:8181/Gateway-war/reviews

但是当我尝试这样打别人时:

https://localhost:8181/Gateway-war/cadets/1/reviews

我得到 404 未找到。

路径有问题吗?可能是因为我的资源名称?

我确实有另一个这样开头的资源:

@Path("cadets")
public class CadetsResource {

问题可能是它试图看那里吗?

【问题讨论】:

    标签: java rest jakarta-ee http-status-code-404


    【解决方案1】:

    是的 - 另一条路径正在干扰。一般来说,我将所有服务都放在每个班级的“命名空间”中。因此,ReviewsResource 可能看起来像:

    @Path("/reviews")
    public class ReviewsResource {
    

    然后,该类中的所有内容都具有 URL 的唯一部分。您已经在 CadetsResource 类中遵循该模式 - 我建议在任何地方使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多