我想要做的是将端点地址的配置和服务版本分离到 .properties 文件或任何文件中。因为,端点在各种环境中会有所不同,例如 UAT 和 PRODUCTION 环境。此外,服务提供者通过使用 ABCDEF_10_4 等命名约定来控制服务/消息版本,ABCDEF 是服务的名称,10.4 是发布版本。我们只是一个服务消费者,所以我们不能在服务器端改变任何东西。
我正在寻找的是使用类似于此的东西的方法
<wsdl:operation name="service1">
<soap:operation soapAction="**${endpointurl}/${msgname}**" />
<wsdl:input>
<soap:body use="literal" />
<soap:header use="literal" message="tns:MessageHeader" part="session" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
<soap:header use="literal" message="tns:MessageHeader" part="session" />
</wsdl:output>
</wsdl:operation>
<wsdl:service name="**${servicename}**">
<wsdl:port binding="tns:ServiceBinding" name="ServicePort">
<soap:address location="**${endpointurl}**" />
</wsdl:port>
</wsdl:service>
我可以在名称中指定这些值:类似于 .properties 文件的值对
endpointurl=http://xxx.xxx.xxx.xxx:10000
msgname=ABCDEF_10_4
servicename=myService
问题是我不想每次服务提供商发布他们的服务的新版本时都更改 wsdl,而且我和我的团队在一个地方管理服务版本会更容易。
另外,当我们在 UAT/DEV/PROD/TEST 环境中部署我们的应用程序时,我们不需要每次都在 wsdl 中进行任何更改,或者每个环境都有很多 wsdl 文件。
我们正在使用 maven cxf codegen 插件来生成客户端存根。
有什么想法或可能的方法来做类似的事情吗?