【问题标题】:@PathParam is Null@PathParam 为空
【发布时间】:2014-10-14 13:43:54
【问题描述】:

我已经研究了两个小时,但我不明白 batchid 变量如何以 的形式出现” "(空字符串而不是 null)在调试器中。

我尝试删除 @Produces/@Consumes 注释,但没有成功。

我正在使用如下所示的 linux 命令行 POST:

http POST http://localhost:8080/cr/feed/send-batch/550f9ef7-b586-4029-bf7d-4d0659a08707

有人能发现我的错误吗?

import javax.enterprise.context.RequestScoped;
import javax.websocket.server.PathParam;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;


@Path("/feed")
@RequestScoped
public class FeedHandler {

    @POST
    @Path("/send-batch/{batchid}")
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)
    public Response sendBatch(@PathParam("batchid") String batchid) {

    }

【问题讨论】:

  • 你能把导入的标签也贴出来吗?也许您使用未检查的注释。某事。比如:导入 javax.ws.rs.Path;导入 javax.ws.rs.PathParam;而且我认为您不需要路径中的第一个“/”:-)
  • 添加了导入语句。你指的是哪个'/'?类或方法注解。
  • 该方法是否需要POST?如果您只需要 PathParam,您也可以尝试 GET。
  • GET 没有让我更进一步:(
  • 您对进口的看法是正确的。 javax.ws.rs.PathParam 是 PathParam 的正确来源。我的 IDE 引入了 javax.websocket.server.PathParam。归咎于 IDE :)

标签: rest java-ee-7


【解决方案1】:

问题在于您的导入。

你正在使用

导入 javax.websocket.server.PathParam;

但你应该使用

导入 javax.ws.rs.PathParam;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多