我们有一个ear应用程序,它包含一些WS端点。我必须部署到目标服务器,但我必须覆盖WSDL soap-address标记。我们使用本地测试平台的解决方案是遵循以下指令:https://stackoverflow.com/a/23491951这完美无缺。 (服务器是野生动物8.2)
但是我们不能再在生产服务器上使用此解决方案(“只是因为”)。
我发现,有一个jboss-webservices.xml
,应该覆盖wsdl的<soap-address>
代码而不更改standalone.xml
/ domain.xml
的{{1}}子系统设置。
但它不适合我。我的webservices
:
jboss-webservices.xml
遵循以下说明:
我将<?xml version="1.1" encoding="UTF-8"?>
<webservices version="1.2"
xmlns="http://www.jboss.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss_webservices_1_0.xsd">
<property>
<name>wsdl.soapAddress.rewrite.modify-wsdl-address</name>
<value>true</value>
</property>
<property>
<name>wsdl.soapAddress.rewrite.wsdl-host</name>
<value>somedomain.com</value>
</property>
</webservices>
放置在文档中引用的两个位置:
jboss-webservices.xml
用于EJB Web服务部署META-INF/jboss-webservices.xml
用于战争档案中捆绑的POJO Web服务部署和EJB Web服务端点不是他们的作品。
相关的日志摘要:
WEB-INF/jboss-webservices.xml
我的问题:我可以错过什么吗?有没有其他方法可以覆盖11:50:43,502 INFO [org.jboss.ws.cxf.metadata] (MSC service thread 1-2) JBWS024061: Adding service endpoint metadata: id=ABCServicePortType
address=http://localhost:8180/abc-web/ABCServicePortType
implementor=example.service.v1.impl.ABCServicePortTypeImpl
serviceName={http://example.com/ns/mod/ws/ABCService/v1}ABCService
portName={http://example.com/ns/mod/ws/ABCService/v1}ABCServicePortTypeImplPort
annotationWsdlLocation=null
wsdlLocationOverride=null
mtomEnabled=false
?
提前谢谢。
答案 0 :(得分:0)
您在jboss-webservices.xml
中提供的属性有效,但WildFly版本高于您在服务器中使用的版本(从WildFly 9开始)。请参阅WildFly 9的发行说明的webservices部分:
http://wildfly.org/news/2015/07/02/WildFly9-Final-Released/
看起来在WildFly 9发布之前standalone.xml
是唯一一个自定义WSDL生成的地方。