JBoss环境下阻止WSDL文件拆分的技术咨询
阻止JBoss自动拆分SOAP WSDL为多个文件的解决方案
针对你在JBoss上开发内部SOAP Web服务时,遇到的WSDL被自动拆分为多个文件并通过<wsdl:import>导入的问题,这里有几个简单有效的方法来生成单一WSDL文件:
方法1:通过端点配置强制生成单一WSDL
如果你的服务是通过jbossws-cxf.xml(或类似的WS配置文件)定义的,可以在端点配置中添加特定属性,让JBoss将所有导入的内容内联到主WSDL中:
<jaxws:endpoint name="YourInternalService" implementor="com.yourcompany.service.YourServiceImpl" address="/YourInternalService"> <jaxws:properties> <!-- 强制生成单一WSDL文件 --> <entry key="org.jboss.ws.cxf.forceSingleWSDL" value="true"/> </jaxws:properties> </jaxws:endpoint>
这个配置会让JBoss把原本拆分出去的XSD类型定义、绑定信息等全部合并到主WSDL里,最终生成一个独立的文件。
方法2:全局系统属性配置
如果你希望所有部署在JBoss上的SOAP服务都默认生成单一WSDL,可以在JBoss的启动参数中添加系统属性:
-Dorg.jboss.ws.cxf.forceSingleWSDL=true
你可以把这个参数添加到JBoss的启动脚本(比如standalone.conf或domain.conf)的JAVA_OPTS中,这样每次启动都会生效,无需逐个服务配置。
补充说明
JBoss默认拆分WSDL是为了遵循模块化设计,将可复用的类型定义单独提取出来,但对于内部系统使用场景,单一WSDL确实更便于集成。上面的两种方法适用于JBoss EAP 7.x及以上版本(包括WildFly,因为WildFly是JBoss的后续版本),都是官方支持的配置方式,不会影响服务的正常运行。
内容的提问来源于stack exchange,提问作者LordCapybara
相关产品推荐
相关产品推荐

