как исправить многократное развертывание веб-приложения на сервере - PullRequest
0 голосов
/ 21 июня 2019

Мое веб-приложение (Spring boot 5+, hbernate 5.4, JPA, Maven, JSP). на машине localhost (tomcat 9.0.17 & mysql v5.7.26) веб-сайт работает нормально и может регистрировать новых пользователей на странице register.jsp.

Когда я развертываю файл war на удаленном сервере (Tomcat 9) .. веб-сайт работает нормально, за исключением того, что при использовании формы для регистрации нового пользователя я получаю исключение ниже (хотя другие страницы веб-сайта продолжают отображаться нормально) :

   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'

В стековой трассировке я заметил 2 развертывания моего приложения, что, очевидно, является причиной, по которой я получаю нелегальный доступ.

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

откуда появился второй веб-инициализатор? !! а почему это исключение не поступает на местную машину?

1 Ответ

0 голосов
/ 22 июня 2019

Причиной исключения в моем случае было то, что я добавил некоторые конфиги в файл 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 на локальном хосте все шло без конфликтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...