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

使用Quarkus和Resteasy从主控制器外部访问路径

谭新知
2023-03-14

我将Resteasy与Quarkus一起使用(io.Quarkus.quarkus-resteasy)。

我有一个在控制器上声明了params的路径。

@RequestScoped
@Path("/v1/domain/{domain}/resource")
public class MyRestController {

    @POST
    @Consumes(APPLICATION_JSON)
    public Response create(Entity entity) {
        // here I create a new entity...
    }
    
    @GET
    @Path("/{id}")
    @Produces(MediaType.APPLICATION_JSON)
    public Response get(@PathParam("id") String id) {
        // get and return the entity...
    }

}
@Dependent
public class DomainProvider {

    @Produces
    @RequestScoped
    public Domain domain() {
        // retrieve the path param here !
    }
}
  • @inject注入io.vertx.ext.web.routingcontext并访问routingcontext.pathparams()
  • 使用resteasyProviderFactor恢复请求上下文数据

在这两种情况下,都没有path参数:请求路径被解析为一个简单的字符串,其中包含客户机用于联系我的web服务的实际URL。

Edit:作为解决办法,在我的DomainProvider类中,我使用RoutingContext检索调用的URL,并使用正则表达式解析它并提取域。

共有1个答案

宋康安
2023-03-14

没有标准的方法来做到这一点。

您需要将param从JAX-RS资源传递到任何需要它的代码片段

 类似资料:
  • 问题内容: 我有上面的控制器,它设置了一个我只能从内部访问值的控制器。 但我看到的地方,使用下面我将能够访问,但是当我在它不存在。 我无法弄清楚如何访问$ scope并使用变量更新它。 问题答案: 没有看到标记,我想MenuSideController的作用域是您选择的作用域的子作用域。 虽然可以像这样遍历树(假设我们想要的作用域是第一个孩子): 仅选择连接了特定控制器的元素会更简单。 假设您正在

  • 问题内容: 我写了下面的代码 我知道它在ng- controller之外,因此我无法绑定数据,但是我的应用程序需要calanderCtrl控制器。我想将此值置于范围内,以便我也可以在其他控制器中使用它。我该怎么做呢? 问题答案: 您可以为此使用发布订阅模式。这样,您避免将变量放在rootscope上。 模板加载时,控制器将被调用。 现在如何运作: Angular不共享范围。每个控制器都有自己的单独

  • 我在本地机器上的vbox上托管的ubuntu服务器上安装了openshift源(单节点集群),我需要使用其来自我的主机(客户端)的IP通过Web访问它,但它总是将我的IP重定向到本地主机172.0.0.1,如何克服这个问题?

  • 问题内容: 我需要从另一个控制器内的另一个控制器访问方法。我该怎么做?我可以使用方法吗? 我可以在当前控制器中包含该控制器,并使其成为对象并通过该对象访问该方法吗?这样可以吗? 我想调用另一个控制器的表单方法— newAction。 问题答案: 您可以将控制器定义为服务,然后在另一个控制器中获取它。 在定义所需的控制器即服务中: 然后,在任何控制器中,您都可以通过容器获取此服务: 在文档中有一些关

  • 我想在EC2主机内使用部署应用程序。 出于本问题范围以外的原因,其中一个服务将使用常量docker标记,如。 图像将定期更新(相同的标记,不同的),因此我需要运行。 我的问题是,是否有一种公开的API的方法,以便可以使用对EC2实例的API调用来调用它,从而避免必须ssh到计算机中。