【问题标题】:Spring Boot 1.2.2 application deployed on Tomcat 7.0.57 does not startTomcat 7.0.57 上部署的 Spring Boot 1.2.2 应用程序无法启动
【发布时间】:2015-10-13 18:24:54
【问题描述】:

我写了一个 Spring Boot 应用程序。当我将它作为 WAR 放入本地测试 Tomcat 7.0.57 (XAMPP) 的 webapps 文件夹中时,它会立即部署并启动。当我在具有相同 Tomcat 版本的专用测试服务器上执行相同操作时,服务器会部署应用程序但不会启动它。当我尝试通过浏览器访问应用程序时,我收到 404 作为响应。

有人知道什么会阻碍服务器启动应用程序?

catalina.out 日志:

Jul 23, 2015 3:16:12 PM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.30 using APR version 1.3.9.
Jul 23, 2015 3:16:12 PM org.apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
Jul 23, 2015 3:16:12 PM org.apache.catalina.core.AprLifecycleListener initializeSSL
INFO: OpenSSL successfully initialized (OpenSSL 1.0.1e 11 Feb 2013)
Jul 23, 2015 3:16:12 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-apr-5009"]
Jul 23, 2015 3:16:12 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 809 ms
Jul 23, 2015 3:16:12 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jul 23, 2015 3:16:12 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.56
Jul 23, 2015 3:16:12 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /opt/tomcat-7/webapps/testapp.war
Jul 23, 2015 3:16:15 PM org.apache.tomcat.websocket.server.WsSci onStartup
INFO: JSR 356 WebSocket (Java WebSocket 1.0) support is not available when running on Java 6. To suppress this message, run Tomcat on Java 7, remove the WebSocket JARs from $CATALINA_HOME/lib or add the WebSocket JARs to the tomcat.util.scan.DefaultJarScanner.jarsToSkip property in $CATALINA_BASE/conf/catalina.properties. Note that the deprecated Tomcat 7 WebSocket API will be available.
Jul 23, 2015 3:16:15 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deployment of web application archive /opt/tomcat-7/webapps/testapp.war has finished in 2,683 ms
Jul 23, 2015 3:16:15 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-apr-5009"]
Jul 23, 2015 3:16:15 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2752 ms

【问题讨论】:

  • 您查看过 Tomcat 日志吗?
  • 用你的文件管理软件进入tomcat文件夹,进入logs文件夹,会有一个名为catalina.out的文件。复制它的内容,编辑你的主帖,然后粘贴整个catalina.out在那里,用鼠标选择该文本,按 ctrl+k 并保存编辑。然后我们就能看到问题所在了。
  • 感谢您的帮助。给你:)
  • 所以,现在你只需要升级 Java。
  • 确实,更新你的 java.lang. Java 8 也更安全。绝对推荐。

标签: java spring tomcat spring-boot


【解决方案1】:

问题是我的 Tomcat 7 使用的是 Java 6。

提示是 catalina.out 日志的以下行:

INFO: JSR 356 WebSocket (Java WebSocket 1.0) support is not available when running on Java 6. To suppress this message, run Tomcat on Java 7, remove the WebSocket JARs from $CATALINA_HOME/lib or add the WebSocket JARs to the tomcat.util.scan.DefaultJarScanner.jarsToSkip property in $CATALINA_BASE/conf/catalina.properties. Note that the deprecated Tomcat 7 WebSocket API will be available.

我通过在 tomcat-7/bin 中创建一个 setenv.sh 为这个 Tomcat 切换了 Java 版本,默认情况下由 catalina.sh 在启动时读取它以设置环境变量。

setenv.sh:

export JAVA_HOME=/usr/java/jdk1.7.0_09

谢谢@我们是博格和@Patouche

【讨论】:

    【解决方案2】:

    在您的 web initiliazr 类(扩展 SpringBootServletInitializer 的类)中,您是否像下面这样覆盖了方法 configure(SpringApplicationBuilder application)

    @SpringBootApplication
    public class Application extends SpringBootServletInitializer {
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(Application.class);
        }
    
        public static void main(String[] args) throws Exception {
            SpringApplication.run(Application.class, args);
        }
    
    }
    

    您将在此页面上找到更多信息:http://docs.spring.io/spring-boot/docs/current/reference/html/howto-traditional-deployment.html

    【讨论】:

    • 是的,我做到了。如果战争不顺利,我猜该应用程序将不会在测试 Tomcat 上启动。但是我看不出两个Tomcat的配置有什么区别。
    猜你喜欢
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 2023-03-07
    • 2021-11-06
    • 2022-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多