You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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改成/,保存后重启应用或者服务器。

方法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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:31:56