【问题标题】:Using Spring XML, create a JAX-WS Client without a serviceClass使用 Spring XML,创建一个没有 serviceClass 的 JAX-WS 客户端
【发布时间】:2010-09-15 18:02:54
【问题描述】:

我知道可以在没有 SEI 的情况下创建 jaxws:endpoint,只要您有 wdslURL、serviceName 和 endpointName、地址。

我看到很多关于 wsdl2java 的示例,然后使用该类值作为 serviceClass 属性。还有很多基于 Java 的示例,我对基于 Spring 的 XML 更感兴趣。

例如,这是我目前不喜欢我的地方:

    <jaxws:client id="jaxwsIngest"  xmlns:n="webservice.ingest" 
            address="http://localhost:8088/IngestService" 
            wsdlLocation="http://localhost:8088/IngestService?WSDL" 
            serviceName="n:IngestService" 
            endpointName="n:IngestServicePort"> 
            <jaxws:properties> 
                    <entry key="dataFormat" value="PAYLOAD"/> 
            </jaxws:properties> 
    </jaxws:client> 

是否可以对 jaxws:client 执行类似 jaxws:endpoint 的操作?实际上,我所拥有的只是一个 WSDL 文件和 WebService 的 IP。

有没有办法通过 GET 查询并获取 serviceClass 值?就像我们如何做 http://?WSDL

我看到的所有示例似乎都表明 serviceClass attr 是必需的。

提前致谢, 亚伦

【问题讨论】:

    标签: java spring wsdl jax-ws


    【解决方案1】:

    由于这个问题在 2 个月后开放,尽管我对 JAX-WS 的内部工作原理知之甚少(而且没有弹簧),但我觉得我可以给出答案。

    您需要一个服务类的原因是getPort 函数是通用的,将返回该类(或可能是接口)的实例。这个类是通过消化 wsdl 生成的(查看 ant 的wsconsume)。它是调用 Web 服务的接口。更多详情:http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/

    其他有用的答案:

    JAX-WS client : what's the correct path to access the local WSDL?

    JAX-WS Loading WSDL from jar

    如果您想在没有本地接口副本的情况下即时生成 ServiceClass,那么您需要做一些超级花哨的反射工作。这超出了我和大多数 Google 的范围,尽管我看到一些人为他们的论文这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-09
      • 1970-01-01
      • 2013-11-17
      • 2012-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多