GlassFish 5上JSF 2.3 Web应用的context-root配置问题
解决GlassFish中设置Web应用为根上下文的问题
我来帮你搞定这个困扰!你需要把你的Web应用配置成GlassFish的默认根上下文,这样访问localhost或者域名根路径时,就会直接跳转到你的应用,而不是默认的docroot页面。下面是几种简单可行的方法,按操作便捷性排序:
方法1:部署时直接设置Context Root为/
如果你是通过GlassFish管理控制台操作,这是最直接的方式:
- 打开GlassFish管理控制台(通常是
localhost:4848) - 进入Applications页面:
- 要是你还没部署应用:点击"Deploy"按钮,选择你的
XYZ_war.war包,在Context Root输入框里直接填/,然后完成部署流程。 - 要是已经部署好了:找到你的
XYZ_war应用,点击"Edit"(不同版本可能显示为"Retarget"),把Context Root改成/,保存后重启应用或者服务器。
- 要是你还没部署应用:点击"Deploy"按钮,选择你的
方法2:配置GlassFish的默认Web模块
如果方法1没生效,可以直接指定服务器的默认Web模块:
- 在管理控制台进入Configurations -> server-config -> Web Container -> Default Web Module
- 从下拉列表里选择你部署的
XYZ_war应用,保存设置后重启GlassFish服务器。这样所有根路径的请求都会被转发到你的应用。
方法3:手动修改domain.xml配置文件
适合习惯直接编辑配置文件的同学:
- 找到你的GlassFish域配置文件,路径一般是
glassfish/domains/domain1/config/domain.xml - 搜索
<application>标签,定位到对应XYZ_war的节点,把context-root属性改成/,示例:<application name="XYZ_war" location="XYZ_war.war" context-root="/"> <!-- 其他应用配置内容 --> </application> - 接着找到
<web-container>标签下的<default-web-module>,设置为你的应用名称:<web-container> <default-web-module>XYZ_war</default-web-module> <!-- 其他Web容器配置 --> </web-container> - 保存文件后,重启GlassFish服务器即可生效。
注意事项
- 如果修改时提示上下文路径冲突,说明已经有其他应用占用了
/路径,先把那个应用的Context Root修改为其他值(比如/old-default)或者卸载它。 - 设置完成后,默认的docroot页面会被你的应用覆盖,不用担心路径冲突问题。
内容的提问来源于stack exchange,提问作者Ingi from INGiSOFT
相关产品推荐
相关产品推荐

