【问题标题】:Spring Boot application doesn't start when deployed to Tomcat inside EclipseSpring Boot 应用程序在 Eclipse 中部署到 Tomcat 时无法启动
【发布时间】:2019-02-06 12:08:22
【问题描述】:

我已将我的 Spring Boot 应用程序迁移到 Java 11,从那时起,它无法在 Eclipse 内的 Tomcat 上启动。准确地说,Tomcat 启动了,但没有来自 Spring Boot 应用程序的输出,就像它不会被部署一样。这也只会在 Java 11 迁移之后发生,并且只有在 Eclipse 中使用 Tomcat 时才会发生,当我将 war 文件部署到相同但独立的 Tomcat 时,它可以工作。

您知道是什么原因造成的吗?还是我应该只考虑它是 Eclipse 问题并等待更新版本?

我正在使用 Eclipse 4.10.0 2018-12、Tomcat 9.0.14、Java 11.0.2、Spring Boot 2.1.1。

编辑:

在 Eclipse 中从 Tomcat 开始的日志 https://pastebin.com/ws2K1FUV

úno 07, 2019 10:23:20 DOP. org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version name:   Apache Tomcat/9.0.14
úno 07, 2019 10:23:20 DOP. org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          Dec 6 2018 21:13:53 UTC
úno 07, 2019 10:23:20 DOP. org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version number: 9.0.14.0
úno 07, 2019 10:23:20 DOP. org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Windows 10
úno 07, 2019 10:23:20 DOP. org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            10.0
úno 07, 2019 10:23:20 DOP. org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          amd64
úno 07, 2019 10:23:20 DOP. org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home:             C:\Program Files\Java\jdk-11.0.2
úno 07, 2019 10:23:20 DOP. org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           11.0.2+7-LTS
úno 07, 2019 10:23:20 DOP. org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
úno 07, 2019 10:23:20 DOP. org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         C:\PATH\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
úno 07, 2019 10:23:20 DOP. org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         C:\Tomcat\apache-tomcat-9.0.14
úno 07, 2019 10:23:20 DOP. org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=C:\PATH\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
úno 07, 2019 10:23:20 DOP. org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=C:\Tomcat\apache-tomcat-9.0.14
úno 07, 2019 10:23:20 DOP. org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=C:\PATH\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
úno 07, 2019 10:23:20 DOP. org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1252
úno 07, 2019 10:23:20 DOP. org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: Loaded APR based Apache Tomcat Native library [1.2.19] using APR version [1.6.5].
úno 07, 2019 10:23:20 DOP. org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
úno 07, 2019 10:23:20 DOP. org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
úno 07, 2019 10:23:20 DOP. org.apache.catalina.core.AprLifecycleListener initializeSSL
INFO: OpenSSL successfully initialized [OpenSSL 1.1.1a  20 Nov 2018]
úno 07, 2019 10:23:20 DOP. org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
úno 07, 2019 10:23:21 DOP. org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
úno 07, 2019 10:23:21 DOP. org.apache.catalina.startup.Catalina load
INFO: Server initialization in [1,692] milliseconds
úno 07, 2019 10:23:21 DOP. org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Catalina]
úno 07, 2019 10:23:21 DOP. org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet engine: [Apache Tomcat/9.0.14]
úno 07, 2019 10:23:23 DOP. org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
WARNING: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [858] milliseconds.
úno 07, 2019 10:23:24 DOP. org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
úno 07, 2019 10:23:25 DOP. org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
úno 07, 2019 10:23:25 DOP. org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
úno 07, 2019 10:23:25 DOP. org.apache.catalina.startup.Catalina start
INFO: Server startup in [3,088] milliseconds

从 Tomcat 日志以独立方式启动 https://pastebin.com/LLZ4Hmcr

07-Feb-2019 11:28:33.241 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/9.0.14
07-Feb-2019 11:28:33.246 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Dec 6 2018 21:13:53 UTC
07-Feb-2019 11:28:33.246 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.14.0
07-Feb-2019 11:28:33.247 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Windows 10
07-Feb-2019 11:28:33.247 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            10.0
07-Feb-2019 11:28:33.248 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
07-Feb-2019 11:28:33.248 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             C:\Program Files\Java\jdk-11.0.2
07-Feb-2019 11:28:33.248 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           11.0.2+7-LTS
07-Feb-2019 11:28:33.249 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
07-Feb-2019 11:28:33.249 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         C:\Tomcat\apache-tomcat-9.0.14
07-Feb-2019 11:28:33.250 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         C:\Tomcat\apache-tomcat-9.0.14
07-Feb-2019 11:28:33.251 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
07-Feb-2019 11:28:33.252 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
07-Feb-2019 11:28:33.253 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
07-Feb-2019 11:28:33.253 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\Tomcat\apache-tomcat-9.0.14\conf\logging.properties
07-Feb-2019 11:28:33.254 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
07-Feb-2019 11:28:33.255 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
07-Feb-2019 11:28:33.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
07-Feb-2019 11:28:33.260 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dspring.config.location=file:C:/PATH/conf/
07-Feb-2019 11:28:33.261 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dlogging.config=file:C:/PATH/conf/logback-spring.xml
07-Feb-2019 11:28:33.262 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
07-Feb-2019 11:28:33.262 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\Tomcat\apache-tomcat-9.0.14
07-Feb-2019 11:28:33.263 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=C:\Tomcat\apache-tomcat-9.0.14
07-Feb-2019 11:28:33.264 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=C:\Tomcat\apache-tomcat-9.0.14\temp
07-Feb-2019 11:28:33.265 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.19] using APR version [1.6.5].
07-Feb-2019 11:28:33.266 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
07-Feb-2019 11:28:33.266 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
07-Feb-2019 11:28:33.275 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1a  20 Nov 2018]
07-Feb-2019 11:28:33.368 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
07-Feb-2019 11:28:34.405 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
07-Feb-2019 11:28:34.410 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [1,710] milliseconds
07-Feb-2019 11:28:34.464 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
07-Feb-2019 11:28:34.465 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.14]
07-Feb-2019 11:28:34.486 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [C:\Tomcat\apache-tomcat-9.0.14\webapps\app.war]
07-Feb-2019 11:28:44.103 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
07-Feb-2019 11:28:44.172 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [C:\Tomcat\apache-tomcat-9.0.14\webapps\app.war] has finished in [9,685] ms
07-Feb-2019 11:28:44.174 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\Tomcat\apache-tomcat-9.0.14\webapps\docs]
07-Feb-2019 11:28:44.211 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\Tomcat\apache-tomcat-9.0.14\webapps\docs] has finished in [38] ms
07-Feb-2019 11:28:44.212 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\Tomcat\apache-tomcat-9.0.14\webapps\examples]
07-Feb-2019 11:28:44.686 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\Tomcat\apache-tomcat-9.0.14\webapps\examples] has finished in [475] ms
07-Feb-2019 11:28:44.687 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\Tomcat\apache-tomcat-9.0.14\webapps\host-manager]
07-Feb-2019 11:28:44.734 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\Tomcat\apache-tomcat-9.0.14\webapps\host-manager] has finished in [47] ms
07-Feb-2019 11:28:44.735 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\Tomcat\apache-tomcat-9.0.14\webapps\manager]
07-Feb-2019 11:28:44.775 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\Tomcat\apache-tomcat-9.0.14\webapps\manager] has finished in [40] ms
07-Feb-2019 11:28:44.776 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\Tomcat\apache-tomcat-9.0.14\webapps\ROOT]
07-Feb-2019 11:28:44.809 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\Tomcat\apache-tomcat-9.0.14\webapps\ROOT] has finished in [33] ms
07-Feb-2019 11:28:44.814 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
07-Feb-2019 11:28:44.825 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
07-Feb-2019 11:28:44.831 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [10,420] milliseconds

两个日志都使用相同版本的 Tomcat 和相同版本的应用程序。但是 Eclipse 就在这里结束了。在此之后,独立的一个开始将 Spring Boot 输出写入控制台。

【问题讨论】:

  • spring-boot 应用程序不需要部署到 tomcat,它有自己的
  • 请发布您的日志
  • 我已将日志添加到问题中。

标签: java eclipse spring-boot tomcat java-11


【解决方案1】:

我认为您可以通过发动战争并按照以下步骤来做到这一点:
1.改变你的maven包装 <packaging>war</packaging>
2.添加这个依赖

<dependency>

   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-tomcat</artifactId>
   <scope>provided</scope>
</dependency>
  1. 扩展 SpringBootServletInitializer
@SpringBootApplication
public class SpringBootTomcatApplication extends SpringBootServletInitializer {
}

【讨论】:

  • 我认为您已经错过了在迁移到 Java 11 之前它工作的部分,我通常在 Tomcat 上将 Spring Boot 作为 war 文件运行没有问题。仅使用特定技术。
【解决方案2】:

我仍然无法让它像以前使用 Java 8 一样运行,但我发现即使应用程序构建为 war 并且应该在外部 Tomcat 上运行,我仍然可以运行它在 Eclipse 中作为使用嵌入式 Tomcat 的 Spring Boot 应用程序。这不是我想要的,但它至少允许按照我们需要的方式构建应用程序,同时能够直接在 Eclipse 中调试它。

【讨论】:

    猜你喜欢
    • 2015-10-13
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2020-07-28
    相关资源
    最近更新 更多