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

Jersey v1Spring引导更改Jersey根路径以暴露执行器endpoint

冯阳华
2023-03-14

从DSYER的例子开始:https://github.com/dsyer/spring-boot-jersey/tree/master/spring-boot-sample-jersey1

为了重新迭代,我使用的是Jersey v1,而不是V2。

我注意到jersey掩盖了spring-boot-actuatorendpoint,如/env和/health。我遵循Spring Boot Jersey和Monitoring URL成功地重新公开了spring-bootendpoint。现在jersey忽略了除/hello/**以外的所有内容,这正是我想要的,但是我还必须将控制器中的路径更改为@Path(“/hello”)

共有1个答案

傅志文
2023-03-14

因此,基于您链接到的示例(并在添加执行器监视之后),我能够以以下方式使endpoint工作

>

  • 除了为泽西筛选器设置init参数之外,保持所有内容不变

    FilterRegistrationBean bean = new FilterRegistrationBean();
    ...           
    bean.addInitParameter("com.sun.jersey.config.feature.FilterForwardOn404", "true");
    

    这使得即使使用默认的/*映射,当Jersey没有找到监视endpoint(它不应该找到)时,它也会将请求转发回servlet容器,并找到endpoint。

    @Bean
    public ServletRegistrationBean jerseyServlet() {
        ServletRegistrationBean bean = new ServletRegistrationBean();
        bean.setServlet(new ServletContainer());
        bean.addInitParameter("com.sun.jersey.config.property.packages",
                              "com.sun.jersey;demo");
        bean.addUrlMappings("/api/*");
        return bean;
    }
    

  •  类似资料:
    • 我正在使用spring Boot2.0.4,并希望公开我的执行器endpoint。当向application.yml仅添加以下信息时,健康状况将被公开。 当我运行http://localhost:8080/acturet时,我会得到

    • 我试图在我的spring boot应用程序中公开/actuator/healthendpoint,但我的日志表明没有公开任何endpoint。我看过一些文档,其中指出健康endpoint是默认启用的唯一endpoint,但它为我返回404。 从应用程序启动的日志: 访问 /actuator 还显示未公开任何endpoint: 我看了其他几个类似的帖子,但是没有一个补丁对我有效。我在@RestCon

    • 我在库中公开了一个方法,该方法返回一个CompletableFuture。该方法的计算发生在单线程执行器上,这是我的瓶颈,因此我不希望任何后续工作发生在同一个线程上 如果我使用返回“SupplySync”结果的简单方法,我将向调用者公开我宝贵的线程,调用者可能会添加同步操作(例如通过Accept),这可能会在该线程上花费一些CPU时间 复制如下: 这确实打印出: 我发现的一个解决方案是引入另一个执

    • 在spring中,我们可以设计rest web服务,如下所示。 谁能帮忙吗?

    • 我应该做什么来获取其他endpoint,比如:度量、bean、缓存等?

    • 对于一些老客户,我们希望公开一些用于运行状况监视的指标。正在查看Spring启动应用程序,其中它公开了来自本地JVM的许多有用指标。如果我在服务器中单独安装冲刺 (sprint) 引导执行器应用程序,它是否可能从远程 JVM 公开所有这些信息?还有其他建议//替代路径是值得赞赏的吗?