控制器映射在启动时未记录
Posted
技术标签:
【中文标题】控制器映射在启动时未记录【英文标题】:Controller mapping are not logging at startup 【发布时间】:2019-04-19 01:12:51 【问题描述】:我需要将在 jdk 8 上运行的现有代码升级到 jdk 11 升级后控制器映射在启动期间未显示。在此应用程序中,我们定义了一些用于集成的入站网关,我们有还定义了一些休息控制器,它们在 jdk 1.8 上时会记录日志,但在我升级后它们没有被记录。有什么方法可以打印这些日志。我们使用的是spring boot 2.1.0 Release,jdk 11 spring集成。第一个图像是在 jdk 8 上运行的代码,第二个图像是在 jdk 11 上运行的代码。这是我们正在使用的 pomfile http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0
<groupId>com.oms.integration</groupId>
<artifactId>oms-integration</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>oms-integration</name>
<description>Integration between OMS and other systems</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-integration</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-http</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-xml</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>xmlunit</groupId>
<artifactId>xmlunit</artifactId>
<version>1.5</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<release>$java.version</release>
</configuration>
<dependencies>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>6.2</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
【问题讨论】:
API 可以访问吗? 请问它在 JDK 1.8 上看起来如何?您的插入记录为格式化代码也会很棒。谢谢 API 是可访问的,唯一的问题是它们在启动时没有记录。这是在 jdk1.8 中运行的先前版本启动日志的屏幕截图。我在 8090 端口运行之前版本的代码。 你是只升级JDK还是Spring Boot版本?如果没有失败,您展示的内容就没有多大意义 是的,我们确实将 spring boot 2.0.4.RELEASE 升级到了 2.1.0.RELEASE 【参考方案1】:如果您还升级了 Spring Boot,这意味着您的项目中的所有其他依赖项也是如此,那么您无法将苹果与苹果进行比较,因为它已经不仅仅是 Java 切换。
从 5.1 版开始,Spring Framework 似乎不会在 INFO 下记录这些端点。考虑为 org.springframework.web
类别配置 DEBUG,然后您将再次使用它们。
您的问题是您没有与我们分享有关依赖项版本不匹配的重要信息...
更新
抱歉,必须是TRACE
。这是来自AbstractHandlerMethodMapping
的一段相关代码:
if (logger.isTraceEnabled())
logger.trace("Mapped " + methods.size() + " handler method(s) for " + userType + ": " + methods);
【讨论】:
我已经用我们正在使用的最新 pomfile 更新了我的帖子,我是否需要在我的属性文件 org.springframework.web=DEBUG 中指定这个属性。当我指定我得到未知属性时 @Sid logging.level.TRACE
@ArtemBilan 这让我发疯了。谢谢你。 FWIW:什么对我有用:logging.level.org.springframework.web.servlet.mvc.method.annotation=TRACE
以上是关于控制器映射在启动时未记录的主要内容,如果未能解决你的问题,请参考以下文章
iOS 5:第一次加载控制器时未调用 willRotateToInterfaceOrientation:duration