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

JBoss 7.1中Axis SOAP服务URL重写配置问题求助

JBoss 7.1 调整SOAP服务URL上下文的解决方案

场景与需求

现有Eclipse项目包含Web模块和Axis生成的SOAP服务,打包为单个WAR部署在JBoss 7.1上,当前正常访问地址:

  • Web项目:http://server/webproject/index.jsp
  • SOAP服务:http://server/webproject/services/services?wsdl

需实现:将SOAP服务访问地址改为http://server/ws/services?wsdl,同时保留原Web项目地址的正常可用性。此前配置的重写规则未生效,规则代码如下:

<virtual-server name="default-host" enable-welcome-root="true">
    <alias name="localhost"/>
    <rewrite pattern="^/ws(.*)$" substitution="/webproject/services/$1" flags="L"/>
</virtual-server>

问题分析与修复步骤

1. 启用JBoss Rewrite模块

JBoss 7.1默认未开启Rewrite扩展,需先在standalone.xml中启用相关模块:

  • 在<extensions>节点下添加:
    <extension module="org.jboss.as.rewrite"/>
    
  • 在<profile>节点内的Web子系统下方,添加Rewrite子系统专属配置:
    <subsystem xmlns="urn:jboss:domain:rewrite:1.0">
        <configuration>
            <rule name="ws-service-rewrite">
                <match pattern="^/ws(.*)$"/>
                <substitution value="/webproject/services$1"/>
                <flags>
                    <flag name="L"/>
                </flags>
            </rule>
        </configuration>
    </subsystem>
    
    注意:原规则直接写入<virtual-server>的方式不符合JBoss 7.1的Rewrite配置规范,必须移至专门的Rewrite子系统中才能生效。

2. 验证规则匹配逻辑

调整后的规则会将所有/ws开头的请求映射到/webproject/services路径下:

  • 当访问http://server/ws/services?wsdl时,正则捕获的$1为/services,替换后实际访问地址为http://server/webproject/services/services?wsdl,完全匹配原SOAP服务的真实地址。

3. 重启服务器并测试

修改配置后重启JBoss 7.1,分别验证:

  • 访问http://server/ws/services?wsdl,确认能正常加载WSDL内容
  • 访问http://server/webproject/index.jsp,确认Web项目功能不受影响

内容的提问来源于stack exchange,提问作者Homselan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:42:15