在 Jersey 代理客户端的资源接口中解析模板变量
Resolving Template Variable in Resource Interface for Jersey Proxy Client
我在解决接口上的 class 级 @Path 注释时遇到了问题。我正在将此接口传递给 Jersey 代理客户端中的 WebResourceFactory,但它立即因 IllegalStateException 而失败。
接口定义:
@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)
关于如何解析 "entity" 模板变量有什么建议吗?
在对 jersey-proxy-client 源代码进行一些调查后,我发现所有模板变量都是通过方法声明上的注释来解析的。 Apache CXF 如何生成我的界面存在问题。我在@PathParam 和@Path 之间不匹配。 @Path 使用 "entity" 而我的 @PathParam 使用 "view"。它们必须相同才能正确解析模板变量。
我遇到了类似的问题,我能够在不匹配 @Path
和 @PathParam
值的情况下解决它。我使用了 @RequestTemplate
,它实际上是从 entity
转换为 view
:
@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 中使用我的界面。希望这会有用。
我在解决接口上的 class 级 @Path 注释时遇到了问题。我正在将此接口传递给 Jersey 代理客户端中的 WebResourceFactory,但它立即因 IllegalStateException 而失败。
接口定义:
@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)
关于如何解析 "entity" 模板变量有什么建议吗?
在对 jersey-proxy-client 源代码进行一些调查后,我发现所有模板变量都是通过方法声明上的注释来解析的。 Apache CXF 如何生成我的界面存在问题。我在@PathParam 和@Path 之间不匹配。 @Path 使用 "entity" 而我的 @PathParam 使用 "view"。它们必须相同才能正确解析模板变量。
我遇到了类似的问题,我能够在不匹配 @Path
和 @PathParam
值的情况下解决它。我使用了 @RequestTemplate
,它实际上是从 entity
转换为 view
:
@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 中使用我的界面。希望这会有用。