WebSphere Liberty(WLP)上下文根未找到 根路径无法跳转至/tis登录页
问题原因
你尝试的所有context root配置本身是生效的,运行日志已经明确显示你的TisEar应用成功挂载到/tis路径下。你访问根路径http://localhost:9080/看到Liberty默认欢迎页,是因为根路径不属于你的业务应用,属于Liberty服务器默认的根路由,修改业务应用的context root当然无法解决根路径跳转的需求。
可行解决方案
方案1:使用Liberty自带的重写规则实现跳转(推荐)
- 首先在
server.xml的featureManager节点中添加重写功能依赖:
<featureManager> <!-- 保留你原有其他feature,新增以下行 --> <feature>rewrite-1.0</feature> </featureManager>
- 在
server.xml中添加重定向规则,所有根路径访问自动跳转到/tis:
<rewriteRule id="rootRedirectToTis"> <condition>${URL} == '/' </condition> <action type="redirect" url="/tis" statusCode="302" /> </rewriteRule>
配置完成后重启Liberty即可生效。
方案2:将业务应用直接挂载到根路径
如果你不需要保留根路径的默认欢迎页,希望直接访问根路径就进入业务系统,可以直接修改你的应用context root配置:
- 修改
application.xml中web模块的context-root为/:
<web> <web-uri>TisWeb-MASP_JPA.war</web-uri> <context-root>/</context-root> </web>
- 移除
server.xml中之前所有关于context root为/tis的配置,重新打包部署应用即可。
方案3:部署极简根路径跳转应用
如果不方便修改现有业务应用配置,可以单独打一个极小的war包,context root设置为/,应用内只包含一个index.html文件,内容如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="refresh" content="0; url=/tis" /> </head> </html>
将该war包部署到Liberty即可实现根路径跳转。
内容的提问来源于stack exchange,提问作者senthil kumar
相关产品推荐
相关产品推荐

