spring-boot - CXF 和 Spring 启动执行器,执行器端点不可用

标签 spring-boot cxf spring-boot-actuator

我有一个带有 spring boot 1.4.2 和 CXF JAXRS 的项目设置。我想将 spring boot actuator 添加到项目中。这是我添加到项目中的配置。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-actuator</artifactId>
</dependency>

之后我创建了一个 WAR 文件,然后将其部署到外部 tomcat 服务器中。但是当我访问健康 URL localhost:8080/management/health 时,它给出了 404 HTTP 代码。服务器正常启动,我可以看到包含以下详细信息的日志:

健康配置日志

[localhost-startStop-1] INFO org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping - Mapped "{[/management/health || /management/health.json],produces=[application/json]}" onto public java.lang.Object

Servlet(s) 配置日志

[localhost-startStop-1] INFO org.springframework.boot.web.servlet.DelegatingFilterProxyRegistrationBean - Mapping filter: 'springSecurityFilterChain' to: [/*]

[localhost-startStop-1] INFO org.springframework.boot.web.servlet.FilterRegistrationBean - Mapping filter: 'webRequestLoggingFilter' to: [/*]

[localhost-startStop-1] INFO org.springframework.boot.web.servlet.FilterRegistrationBean - Mapping filter: 'applicationContextIdFilter' to: [/*]

[localhost-startStop-1] INFO org.springframework.boot.web.servlet.ServletRegistrationBean - Mapping servlet: 'dispatcherServletRegistration' to []

[localhost-startStop-1] INFO org.springframework.boot.web.servlet.ServletRegistrationBean - Mapping servlet: 'dispatcherServlet' to [/]

[localhost-startStop-1] INFO org.springframework.boot.web.servlet.ServletRegistrationBean - Mapping servlet: 'CXFServlet' to [/services/*]

最佳答案

问题已解决,这里是详细信息。由于 CXF 和 spring boot 一起配置在一起,因此 CXF REST API 和执行器端点都配置为 '/'。为 CXF RESt 端点配置的 servlet bean 的名称是 dispatcherServletRegistration。 CXF servlet 的自动配置也正在发生,因为 CXf 的引导启动程序在 POM 中。因此你会发现 CXFServlet 也为 /services/* 配置。

Mapping servlet: 'dispatcherServletRegistration' to []

Mapping servlet: 'dispatcherServlet' to [/]

Mapping servlet: 'CXFServlet' to [/services/*]

我删除了自动配置选项 (CXFServlet),因为我有一些 CXF JAXRS 实现所需的自定义并将 dispatcherServletRegistration 映射到 /services/ * 现在一切正常。现在执行器在 '/' 下工作,CXF REST API 在 /services 下工作。

关于spring-boot - CXF 和 Spring 启动执行器,执行器端点不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45421261/

相关文章:

java - 将 json 数据传递给 spring-boot 应用程序的 Curl POST 命令不起作用

java - Camel 未使用 Camel-cxf 正确拦截 SoapFault

java - 配置 Spring Batch JobScope 时调用 configprops 时出错

java - 如何在/info 执行器端点中获取 Spring Boot 的版本

java - JPA批量插入并不能提高性能

postgresql - docker springboot 仅通过 docker-compose 连接到 postgres 5432

spring-boot - 如何为多个 feign 客户端实现错误解码器

java - 如何从 Apache CXF REST 服务返回 XML 并将其转换为 json?

java - maven cxf-codegen-plugin XMLStreamException 错误 : Attribute limit

java - 执行器/指标端点不包括http.server.requests