CXF如何将WSDL的localhost转换为实际的服务器URL?

时间:2013-01-07 20:08:18

标签: wsdl jax-ws cxf wsdl2java

到目前为止我见过的所有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。因此,在我继承的项目的特定情况下,这似乎就是这样做的。

现在的问题是:

  1. 这是标准这样做的方式吗?
  2. CXF中是否有标准(或推荐方式)?
  3. 还是由开发人员决定呢?

1 个答案:

答案 0 :(得分:1)

在许多情况下,Web服务将具有生产URL和测试/ QA / UAT URL。开发人员将针对测试URL进行开发,然后一旦准备好进行生产,他就会将URL切换为指向生产。

由开发人员决定如何完成此操作并且没有标准的方法来处理它。