我有一个webapp,它正在Tomcat9上部署。作为部署的一部分,我们只需将war放到webapps目录中,tomcat负责war的重新部署。但是有时我们会在日志中看到一些错误,主要是一些spring bean的destroy方法没有被调用:
31-Aug-2017 21:41:35.292 INFO [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.startup.HostConfig.undeploy Undeploying context [/globalsearch] INFO : org.springframework.web.context.support.XmlWebApplicationContext - Closing WebApplicationContext for namespace 'appServlet-servlet': startup date [Wed Aug 30 22:34:34 AEST 2017]; parent: Root WebApplicationContext INFO : org.springframework.web.context.support.XmlWebApplicationContext - Closing Root WebApplicationContext: startup date [Wed Aug 30 22:34:26 AEST 2017]; root of context hierarchy WARN : org.springframework.beans.factory.support.DisposableBeanAdapter - Invocation of destroy method 'cleanUp' failed on bean with name 'GlobalSearchEventLoadMessageProcessing': java.lang.IllegalStateException: java.io.FileNotFoundException: /opt/tomcat/9.0.0.M19/webapps/globalsearch/WEB-INF/lib/commons-collections-3.2.1.jar (No such file or directory) WARN : org.springframework.beans.factory.support.DisposableBeanAdapter - Invocation of destroy method 'cleanUp' failed on bean with name 'globalSearchMessageSender': java.lang.IllegalStateException: java.io.FileNotFoundException: /opt/tomcat/9.0.0.M19/webapps/globalsearch/WEB-INF/lib/commons-collections-3.2.1.jar (No such file or directory) WARN : org.springframework.beans.factory.support.DisposableBeanAdapter - Invocation of destroy method 'stopServer' failed on bean with name 'globalSearchEmbeddedJMS': java.lang.IllegalStateException: java.io.FileNotFoundException: /opt/tomcat/9.0.0.M19/webapps/globalsearch/WEB-INF/lib/commons-collections-3.2.1.jar (No such file or directory) WARN : org.springframework.beans.factory.support.DisposableBeanAdapter - Invocation of destroy method 'close' failed on bean with name 'connectionFactory': java.lang.IllegalStateException: java.io.FileNotFoundException: /opt/tomcat/9.0.0.M19/webapps/globalsearch/WEB-INF/lib/commons-collections-3.2.1.jar (No such file or directory)
<bean id="GlobalSearchEventLoadMessageProcessing"
class="xxx.GlobalSearchEventLoadMessageProcessing"
init-method="initialize" destroy-method="cleanUp">
</bean>
PS:我不能停止和启动服务器部署过程。
查看错误,调用了该方法:
WARN : org.springframework.beans.factory.support.DisposableBeanAdapter - Invocation of destroy method 'cleanUp' failed on bean with name 'GlobalSearchEventLoadMessageProcessing': java.lang.IllegalStateException: java.io.FileNotFoundException: /opt/tomcat/9.0.0.M19/webapps/globalsearch/WEB-INF/lib/commons-collections-3.2.1.jar (No such file or directory)
但它失败了,因为很可能是由于争用条件--您试图从已经从容器中移除的jar
文件中运行一些代码。在cleanup
方法中可以避免使用外部库吗?
完成干净的构建后,我将war文件复制到Tomcat的文件夹中。但是部署会发生两次,并且在上下文已经存在的情况下以异常结束。我错过了什么? 非常感谢您的帮助。
我有一个Grails(2.5.3版)应用程序,当我通过选项:要部署的WAR文件在Tomcat中部署时,选择WAR文件,会出现以下错误。如果我尝试一个更简单的应用程序(大小、复杂度等),它运行得很好。 但是,如果在从manager运行应用程序时手动将war文件的内容复制到Tomcat路径:pathTomcat/webapps/myApplication,则效果良好。出现任何错误。 错误: Grail
我试图在tomcat 6中部署一个Spring引导应用程序(战争)(当在tomcat 7和更旧的版本中部署时,我没有问题),事实上在tomcat 6(servlet 2.5)中部署是不可能使用新的方式(我会把描述新方式的链接放在底部),因为Spring Boot使用Servet 3.0 API初始化ServletContext(注册Servlet等),所以您不能在Servlet 2.5容器中开箱即
我在将spring boot应用程序部署到tomcat时遇到了问题,尽管在IDE中工作得很好。我按照https://docs.spring.io/spring-boot/docs/current/reference/html/howto-tegratic-deployment.html中的说明进行了操作 更详细的结构: mvn clear包给出错误:
我正在开发一个简单的应用程序,它使用泽西作为框架来构建API,并使用Jackson来处理JSON。 当我部署应用程序时,通过复制 我很确定这个问题不在java代码中,因为它曾经与*一起工作。jar包含方法。但我厌倦了这一点,希望将其迁移到maven体系结构。 我不会发布我的全部代码,但你可以在这里看到。 为了简化操作,下面列出了我使用的依赖项: jersey json v1.19 什么会导致此错误
我正在尝试将.war、.aar、.xml和.properties文件部署到tomcat docker容器。我使用了下面的Dockerfile和基本的tomcat docker映像。 到目前为止一切正常。它提取war文件并启动容器内的应用程序。 但是现在我需要像这样添加/编辑“/usr/local/tomcat/webapps/root/web-inf//”和“/usr/local/tomcat/w