我的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初始化程序从哪里来?以及为什么此异常不在本地计算机上出现?
答案 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时会发生任何冲突。