Java 解析Jersey代理客户端的资源接口中的模板变量

Java 解析Jersey代理客户端的资源接口中的模板变量,java,jersey-2.0,jersey-client,Java,Jersey 2.0,Jersey Client,我在解决接口上的类级别@Path注释时遇到了一个问题。我正在将此接口传递给Jersey代理客户端中的WebResourceFactory,但它立即失败,出现了一个非法状态异常 接口定义: @Path("{entity}") public interface EntityResource { @GET @Produces("*/xml") Entity get(@PathParam("view") EntityType view); } 我得到的例外情况是: Except

我在解决接口上的类级别@Path注释时遇到了一个问题。我正在将此接口传递给Jersey代理客户端中的WebResourceFactory,但它立即失败,出现了一个非法状态异常

接口定义:

@Path("{entity}")
public interface EntityResource {
    @GET
    @Produces("*/xml")
    Entity get(@PathParam("view") EntityType view);
}
我得到的例外情况是:

Exception in thread "main" java.lang.IllegalStateException: The template variable 'entity' has no value
    at org.glassfish.jersey.client.JerseyWebTarget.getUri(JerseyWebTarget.java:135)
    at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:215)
    at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:60)
    at org.glassfish.jersey.client.proxy.WebResourceFactory.invoke(WebResourceFactory.java:322)

关于如何解析“实体”模板变量的任何建议?

在对jersey代理客户端源代码进行了一些调查之后,我发现所有模板变量都是通过方法声明上的注释解析的。apachecxf如何生成我的接口存在一个问题。@PathParam和@Path之间不匹配@Path使用“实体”,my@PathParam使用“视图”。为了正确解析模板变量,它们必须相同。

我遇到了类似的问题,并且我能够在不匹配
@Path
@PathParam
值的情况下解决它。我使用了
@RequestTemplate
,它实际上将
实体
转换为
视图

@APIGatewayIntegration(
      requestTemplates =
          @RequestTemplate(
              mimeType = MediaType.APPLICATION_JSON,
              template = "{\"entity\": \"$input.params('view')\"}"),
      type = "aws",
      contentHandling = "CONVERT_TO_TEXT",
      httpMethod = HTTP_POST_METHOD,
      passthroughBehavior = "WHEN_NO_TEMPLATES"
)
我在AWS API GW中使用我的接口。希望这将是有用的