到目前为止我见过的所有WSDL都使用 localhost 来描述服务地址。 e.g:
<wsdl:service name="SQLService">
<wsdl:port name="SQLServiceSoap" binding="tns:SQLServiceSoap">
<soap:address location="http://localhost:8080/rservice/services/SQLServiceSoap" />
</wsdl:port>
</wsdl:service>
但是当运行此类服务的客户端时,以某种方式知道该服务的真实网址,即使在远程机器!
CXF如何表现这种“神奇”?
IOW,运行服务的机器不的测试机器上的客户端JAR如何知道该服务器的位置及其地址?
我grep
- 编写了源代码,并strings
编辑了客户端的jar文件,发现服务器的URL没有任何跟踪。
那怎么办?
更新:在我的超级自然侦探工作中,我刚刚在客户端的 JAR文件所在的目录中找到了一个名为config.xml
的文件。 config.xml
包含实际服务器的URL。因此,在我继承的项目的特定情况下,这似乎就是这样做的。
现在的问题是:
答案 0 :(得分:1)
在许多情况下,Web服务将具有生产URL和测试/ QA / UAT URL。开发人员将针对测试URL进行开发,然后一旦准备好进行生产,他就会将URL切换为指向生产。
由开发人员决定如何完成此操作并且没有标准的方法来处理它。