如何修复服务器中Web应用程序的多次部署

时间:2019-06-21 16:57:50

标签: spring-boot threadpool tomcat9

我的Web应用程序(Spring boot 5 +,hbernate 5.4,JPA,Maven,JSP)。在localhost机器(tomcat 9.0.17和mysql v5.7.26)上,网站可以正常工作,并且可以在register.jsp页面上注册新用户。

当我在远程服务器(Tomcat 9)上部署war文件时,该网站运行良好,当我使用该表格注册新用户时,出现以下异常(尽管该网站的其他页面始终正常显示) :

   java.lang.IllegalStateException: Illegal access: this web 
   application instance has been stopped already. Could not load []. 
   The following stack trace is thrown for debugging purposes as 
   well as to attempt to terminate the thread which caused the 
   illegal access.
////.....
   2019-06-20 12:43:47,237 [Catalina-utility-1] INFO  
   org.apache.catalina.startup.HostConfig- Deploying web application 
   archive [/home/proz/tomcat/webapps/proz.net/ROOT.war]
  2019-06-20 12:43:59,099 [Catalina-utility-1] INFO  
  org.apache.catalina.core.ContainerBase.[Catalina].[proz.net].[/]- 
  2 Spring WebApplicationInitializers detected on classpath
  2019-06-20 12:44:02,052 [Catalina-utility-1] INFO  
  org.apache.catalina.core.ContainerBase.[Catalina].[proz.net].[/]- 
  Initializing Spring embedded WebApplicationContext
   2019-06-20 12:44:07,558 [Catalina-utility-1] INFO  
    org.apache.catalina.startup.HostConfig- Deployment of web 
   application archive [/home/proz/tomcat/webapps/proz.net/ROOT.war] 
   has finished in [20,321] ms
  2019-06-20 12:44:22,702 [ajp-nio-127.0.0.1-9549-exec-57] INFO  
 org.apache.catalina.core.ContainerBase.[Catalina].[proz.net].[/]- 
  Initializing Spring DispatcherServlet 'dispatcherServlet'

在stacktrace中,我注意到2部署了我的应用程序,这显然是我获得非法访问的原因。

1- From dispatcher servlet ..I believe this SpringBootServletInitializer 
2- From WebApplicationContext ...?

第二个Web初始化程序从哪里来?以及为什么此异常不在本地计算机上出现?

1 个答案:

答案 0 :(得分:0)

在我的情况下,导致异常的原因是我在application.properties文件中添加了一些与Tomcat的远程服务器安装相冲突的配置:

  # Load on startup priority of the dispatcher servlet. 
  spring.mvc.servlet.load-on-startup=-1 
  # Path of the dispatcher servlet.
  spring.mvc.servlet.path=/
  # Path pattern used for static resources.
  spring.mvc.static-path-pattern=/**

我评论了第3、2、4和6行...并重新部署了战争文件...问题解决了。

我不知道为什么在本地主机上使用Tomcat时会发生任何冲突。