使用Spring XML,创建一个没有serviceClass的JAX-WS客户端

时间:2010-09-15 18:02:54

标签: java spring wsdl jax-ws

我知道只要你有wdslURL,serviceName& endpointName,address。

我看到很多关于wsdl2java的例子,然后使用该类值作为serviceClass attr。还有很多基于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那样做类似的东西:端点到jaxws:client?实际上,我所拥有的只是一个WSDL文件&amp; WebService的IP。

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

我看到的所有示例似乎都认为需要serviceClass attr。

提前致谢, 亚伦

1 个答案:

答案 0 :(得分:0)

由于这个问题在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,那么你需要做一些超级花哨的反射。这超出了我和谷歌的大部分,虽然我已经看过一些人为他们的论文做这个帖子。