【问题标题】:Java Spring app can't run after deploy on Tomcat7在Tomcat7上部署后Java Spring应用程序无法运行
【发布时间】:2021-01-17 17:46:42
【问题描述】:

我刚刚(有史以来第一次)部署了基于 Spring 的 Java 应用程序。在本地主机上一切正常,但部署后我无法发送任何请求。应用程序只是没有在服务器上运行。

日志:

Oct  5 00:23:17 vps-588e7d9b server: Oct 05, 2020 12:23:17 AM org.apache.catalina.startup.HostConfig deployWAR
Oct  5 00:23:17 vps-588e7d9b server: INFO: Deploying web application archive /var/lib/tomcat/webapps/TRADESYSTEM.war
Oct  5 00:23:17 vps-588e7d9b server: Oct 05, 2020 12:23:17 AM org.apache.catalina.loader.WebappClassLoaderBase validateJarFile
Oct  5 00:23:17 vps-588e7d9b server: INFO: validateJarFile(/usr/share/tomcat/webapps/TRADESYSTEM/WEB-INF/lib/tomcat-embed-core-9.0.30.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
Oct  5 00:23:17 vps-588e7d9b server: Oct 05, 2020 12:23:17 AM org.apache.catalina.loader.WebappClassLoaderBase validateJarFile
Oct  5 00:23:17 vps-588e7d9b server: INFO: validateJarFile(/usr/share/tomcat/webapps/TRADESYSTEM/WEB-INF/lib/tomcat-embed-el-9.0.30.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/el/Expression.class
Oct  5 00:23:20 vps-588e7d9b server: Oct 05, 2020 12:23:20 AM org.apache.catalina.startup.TldConfig execute
Oct  5 00:23:20 vps-588e7d9b server: 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.
Oct  5 00:23:20 vps-588e7d9b server: Oct 05, 2020 12:23:20 AM org.apache.catalina.core.ContainerBase addChildInternal
Oct  5 00:23:20 vps-588e7d9b server: SEVERE: ContainerBase.addChild: start:
Oct  5 00:23:20 vps-588e7d9b server: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/TRADESYSTEM]]
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1092)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:560)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1779)
Oct  5 00:23:20 vps-588e7d9b server: at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
Oct  5 00:23:20 vps-588e7d9b server: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Oct  5 00:23:20 vps-588e7d9b server: at java.lang.reflect.Method.invoke(Method.java:498)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
Oct  5 00:23:20 vps-588e7d9b server: at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
Oct  5 00:23:20 vps-588e7d9b server: at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1506)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.manager.HTMLManagerServlet.upload(HTMLManagerServlet.java:285)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:205)
Oct  5 00:23:20 vps-588e7d9b server: at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
Oct  5 00:23:20 vps-588e7d9b server: at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:136)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:607)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
Oct  5 00:23:20 vps-588e7d9b server: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
Oct  5 00:23:20 vps-588e7d9b server: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
Oct  5 00:23:20 vps-588e7d9b server: at java.lang.Thread.run(Thread.java:748)
Oct  5 00:23:20 vps-588e7d9b server: Caused by: java.lang.NoClassDefFoundError: javax/servlet/GenericFilter
Oct  5 00:23:20 vps-588e7d9b server: at java.lang.ClassLoader.defineClass1(Native Method)
Oct  5 00:23:20 vps-588e7d9b server: at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
Oct  5 00:23:20 vps-588e7d9b server: at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3205)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1373)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1861)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.tomcat.websocket.server.WsServerContainer.<init>(WsServerContainer.java:106)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.tomcat.websocket.server.WsSci.init(WsSci.java:137)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.tomcat.websocket.server.WsSci.onStartup(WsSci.java:49)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5632)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
Oct  5 00:23:20 vps-588e7d9b server: ... 43 more
Oct  5 00:23:20 vps-588e7d9b server: Caused by: java.lang.ClassNotFoundException: javax.servlet.GenericFilter
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1892)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)
Oct  5 00:23:20 vps-588e7d9b server: ... 55 more
Oct  5 00:23:20 vps-588e7d9b server: Oct 05, 2020 12:23:20 AM org.apache.catalina.startup.HostConfig deployWAR
Oct  5 00:23:20 vps-588e7d9b server: SEVERE: Error deploying web application archive /var/lib/tomcat/webapps/TRADESYSTEM.war
Oct  5 00:23:20 vps-588e7d9b server: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/TRADESYSTEM]]
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:903)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1092)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:560)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1779)
Oct  5 00:23:20 vps-588e7d9b server: at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
Oct  5 00:23:20 vps-588e7d9b server: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Oct  5 00:23:20 vps-588e7d9b server: at java.lang.reflect.Method.invoke(Method.java:498)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
Oct  5 00:23:20 vps-588e7d9b server: at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
Oct  5 00:23:20 vps-588e7d9b server: at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1506)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.manager.HTMLManagerServlet.upload(HTMLManagerServlet.java:285)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:205)
Oct  5 00:23:20 vps-588e7d9b server: at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
Oct  5 00:23:20 vps-588e7d9b server: at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:136)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:607)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
Oct  5 00:23:20 vps-588e7d9b server: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
Oct  5 00:23:20 vps-588e7d9b server: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
Oct  5 00:23:20 vps-588e7d9b server: at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
Oct  5 00:23:20 vps-588e7d9b server: at java.lang.Thread.run(Thread.java:748)
Oct  5 00:23:20 vps-588e7d9b server: Oct 05, 2020 12:23:20 AM org.apache.catalina.startup.HostConfig deployWAR
Oct  5 00:23:20 vps-588e7d9b server: INFO: Deployment of web application archive /var/lib/tomcat/webapps/TRADESYSTEM.war has finished in 2,748 ms
Oct  5 00:25:54 vps-588e7d9b server: Oct 05, 2020 12:25:54 AM org.apache.catalina.loader.WebappClassLoaderBase validateJarFile
Oct  5 00:25:54 vps-588e7d9b server: INFO: validateJarFile(/usr/share/tomcat/webapps/TRADESYSTEM/WEB-INF/lib/tomcat-embed-core-9.0.30.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
Oct  5 00:25:54 vps-588e7d9b server: Oct 05, 2020 12:25:54 AM org.apache.catalina.loader.WebappClassLoaderBase validateJarFile
Oct  5 00:25:54 vps-588e7d9b server: INFO: validateJarFile(/usr/share/tomcat/webapps/TRADESYSTEM/WEB-INF/lib/tomcat-embed-el-9.0.30.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/el/Expression.class
Oct  5 00:25:56 vps-588e7d9b server: Oct 05, 2020 12:25:56 AM org.apache.catalina.startup.TldConfig execute
Oct  5 00:25:56 vps-588e7d9b server: 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.

有什么问题吗?如果有任何帮助,我将不胜感激。

编辑:

如果有帮助 - 我已经下载了刚刚部署在服务器上的示例 Web 项目,它运行良好。该项目具有上述依赖关系,但不同之处在于部署后的日志。部署该示例应用程序后,日志中是典型的 Spring 日志:

Oct  5 01:23:36 vps-588e7d9b server: .   ____          _            __ _ _
Oct  5 01:23:36 vps-588e7d9b server: /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
Oct  5 01:23:36 vps-588e7d9b server: ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
Oct  5 01:23:36 vps-588e7d9b server: \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
Oct  5 01:23:36 vps-588e7d9b server: '  |____| .__|_| |_|_| |_\__, | / / / /
Oct  5 01:23:36 vps-588e7d9b server: =========|_|==============|___/=/_/_/_/
Oct  5 01:23:36 vps-588e7d9b server: :: Spring Boot ::        (v1.5.3.RELEASE)

但在部署我的应用程序(附加依赖项)后,没有像上面这样的日志。只有应用程序已部署的信息。

Oct  5 01:37:58 vps-588e7d9b server: Oct 05, 2020 1:37:58 AM org.apache.catalina.startup.HostConfig deployWAR
Oct  5 01:37:58 vps-588e7d9b server: INFO: Deploying web application archive /var/lib/tomcat/webapps/app.war
Oct  5 01:38:00 vps-588e7d9b server: Oct 05, 2020 1:38:00 AM org.apache.catalina.startup.TldConfig execute
Oct  5 01:38:00 vps-588e7d9b server: 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.
Oct  5 01:38:00 vps-588e7d9b server: Oct 05, 2020 1:38:00 AM org.apache.catalina.startup.HostConfig deployWAR
Oct  5 01:38:00 vps-588e7d9b server: INFO: Deployment of web application archive /var/lib/tomcat/webapps/app.war has finished in 2,510 ms

【问题讨论】:

  • 您可以尝试使用 postman 或 curl 向您的 API 发送请求,然后检查 cors 标头是否包含在响应中,如果没有,请尝试使用 cors 过滤器,您可以从这里stackoverflow.com/questions/51686029/…
  • @SannTran 当我尝试通过邮递员发送请求时,出现 404 错误。现在我真的很困惑..
  • 这意味着您的 api 不工作。检查ip、端口、路径是否正确
  • @SannTran 更重要的是,如果我在 tomcat 停止 java 应用程序,错误是一样的。我不知道为什么它不起作用,因为写的是应用程序正在运行
  • 404 错误才是真正的问题。 CORS 错误只是 404 的副作用。在大多数系统中,404 错误和其他 4xx 错误缺少 Access-Control-Allow-Origin 响应标头是正常的和预期的。 (但即使 404 错误确实有 Access-Control-Allow-Origin 标头,它仍然是需要修复的 404 问题……)

标签: java spring maven tomcat


【解决方案1】:

问题解决了。问题在于导致 elManager 错误的 Tomcat7 版本。我已经通过将 Tomcat 升级到 v9 来解决这个问题。希望它会对某人有所帮助。主题可以关闭。

【讨论】:

    猜你喜欢
    • 2015-04-25
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2012-06-23
    • 2022-01-14
    相关资源
    最近更新 更多