当前位置: 首页 > 知识库问答 >
问题:

@PathParam的Jersey错误

苏品
2023-03-14

我使用泽西和我有以下两个RESTful方法:

@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public List<Activity> getAllActivities() {
    return activityRepository.findAllActivities();
}

@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@PathParam("{activityId}")
public Activity getActivity(@PathParam("activityId") String activityId) {
    return activityRepository.findActivity(activityId);
}

在我添加第二种方法之前,一切都很好。但是,我的tomcat现在给出了以下错误。

org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization.
[[FATAL] A resource model has ambiguous (sub-)resource method for HTTP method GET and input mime-types as defined by @Consumes and @Produces annotations

有什么线索吗?

共有1个答案

周子平
2023-03-14

您应该使用路径(“{activityId}”)而不是路径参数(“{activityId}”)

文件表明:

@路径参数

将URI模板参数或包含模板参数的路径段的值绑定到资源方法参数、资源类字段或资源类bean属性。

@路径

标识资源类或类方法将为请求提供服务的URI路径。

因此,应该使用路径来定义资源方法将服务的URI路径。

 类似资料:
  • 这是我的代码 我得到的只是 到目前为止,我已经检查了这个 https://confluence.atlassian.com/display/CLOVERKB/Maven 2 插件失败,在为源文件定义两个位置时找不到符号异常 maven“找不到符号”消息没有帮助 但是没有任何成功。 编辑:pom.xml

  • 问题内容: 我试图过滤/修改Post和Put调用,以确保从HTML和JS代码中过滤出用户提供的所有参数,以防止XSS攻击。我想确保这是在API级别上实现的,因此无论使用什么客户端,它都将受到保护。 对于Jersey 1.x,可以通过实现ContainerRequestFilter并在将它们与请求的servlet匹配之前修改request.getQueryParameters()来实现。示例:htt

  • 以下是我在泽西使用的方法签名,当我调试/运行程序时,我收到错误: [[致命]方法公共javax。ws。rs.core。响应com。xxxx。xxxxx。Xxxxx。xxxxx。资源类com上的xxxxxxxx(java.lang.String、java.lang.String、java.lang.String、javax.ws.rs.container.ContainerRequestContex

  • 在web中。xml我已经将URL模式指定为rest,并在RestServicePathParamJava4s中指定。java我们将类级路径指定为客户,方法级路径指定为国家 所以最终的URL应该是 响应应显示为 如果我给出下面给出的2输入,它显示错误。如何解决这个问题? 这里这是一个字符串,它包含正斜杠。如何通过使用或任何我需要使用的东西来接受这个。如果有人知道这个,请帮助我。如果有人知道什么是,给

  • 问题内容: 我有一个服务,其中路径的最后一部分是可选的,用户都可以输入 / mypath / 和 / mypath / param1 / 。 我试图使用正则表达式来过滤路径的最后一部分: 我使用RestEasy作为我的JAX- RS提供程序,并且代码在Tomcat中按预期工作,但是当我在JBoss中部署它时,如果不提交可选部分,则会得到405返回代码。 我在这里做错什么了吗,还是无法通过便携式方式