繁体   English   中英

Tomcat上下文根-将Spring应用程序部署到Tomcat时发生Tiles异常

[英]Tomcat Context Root - Tiles Exception when deploy a Spring app to Tomcat

我在tomcat中部署了Spring MVC 4应用程序。 工作正常。 我必须克隆此应用程序,以使多个应用程序具有相同的行为但配置不同:数据库实例和用于文件管理的文件夹。 每个针对不同的客户。 当我将原始应用程序部署到Linux Tomcat时,它可以正常工作( https:// hostname:8443 / app1 )。

然后,我更改数据库连接设置(数据库名称,用户名和用于管理一些生成文件的文件夹),并将工件的名称更改为customername。 但是,当我进入应用程序时,它会正确显示登录页面,但是当登录到应用程序时,出现以下错误:

Status HTTP 500 - Request processing failed; nested exception is org.apache.tiles.request.render.CannotRenderException: java.io.IOException: JSPException including path '/WEB-INF/layout/header.jsp'

javax.servlet.ServletException: File [/WEB-INF/layout/header.jsp] not found

访问https:// hostname:8443 / customername时 ,它是tile模板的一部分。 文件存在于已部署的应用程序中,能够访问登录页面,因此似乎可以解决tile配置,但是我不知道为什么无法访问jsp文件。 在没有安全Tomcat(端口8080)的本地窗口中,它可以正常工作。

已编辑

如果我将customername.war的名称更改为app1.war,则工作正常。 有人知道war文件在哪里保留对基本应用程序app1的引用吗? 似乎在某处存在对app1的引用,这使得如果我更改应用程序名称(工件ID),则不会引用到customername路径。

似乎这是上下文根问题。 我已经在STS中更改了它(“项目”>“属性”>“ Web项目设置”>“上下文根”),已在Tomcat上部署但仍然无法正常工作。 据推测,只有通过更改war文件名,才应更新应用程序的上下文根,但它不起作用。

将Tomcat从8.0升级到8.5.5解决了该问题。 我不知道为什么,但是8.0中存在一个问题,因为没有办法强制应用程序的上下文根目录,没有context.xml应用程序文件,也没有其他配置。

只需升级到8.5.5并部署应用程序而不会出现上下文问题。

BR

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM