gpt4 book ai didi

web-services - CXF 自己自动生成 WSDL 导入?

转载 作者:行者123 更新时间:2023-12-01 02:26:25 26 4
gpt4 key购买 nike

我使用 CXF 开发了一个代码优先的 SOAP Web 服务,这是我得到的一个 WSDL。为什么要在 WSDL 上导入

第二行是兴趣之一:

我猜也许它与命名空间有关?我想知道发布 Web 服务 impl 的代码是否有帮助?

<wsdl:import location="http://localhost:8080/abc/RaceCalc?wsdl=RaceCalc.wsdl" namespace="http://service.wrapper.ie/">
</wsdl:import>

从 Web 服务生成的 WSDL:
    <?xml version='1.0' encoding='UTF-8'?><wsdl:definitions name="RaceCalcImplService" targetNamespace="http://impl.service.wrapper.ie/" xmlns:ns1="http://service.wrapper.ie/" xmlns:ns2="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.service.wrapper.ie/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:import location="http://localhost:8080/abc/RaceCalc?wsdl=RaceCalc.wsdl" namespace="http://service.wrapper.ie/">
</wsdl:import>
<wsdl:binding name="RaceCalcImplServiceSoapBinding" type="ns1:RaceCalc">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="setRaceCalcHelper">
<soap:operation soapAction="" style="document" />
<wsdl:input name="setRaceCalcHelper">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="setRaceCalcHelperResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="calculate">
<soap:operation soapAction="" style="document" />
<wsdl:input name="calculate">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="calculateResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="RaceCalcImplService">
<wsdl:port binding="tns:RaceCalcImplServiceSoapBinding" name="RaceCalcImplPort">
<soap:address location="http://localhost:8080/abc/RaceCalc" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

最佳答案

因为您的实现中有两个不同的命名空间:{ http://service.wrapper.ie/ } 和 {http://实现 .service.wrapper.ie/}。你肯定有包中的接口(interface)ie.wrapper.service以及 ie.wrapper.service.impl 中的实现.因此 CXF 假设命名空间 { http://service.wrapper.ie/ } 用于逻辑内容(接口(interface)/端口类型)和命名空间 { http://impl.service.wrapper.ie/ } 对于物理的东西(impl/service/binding)。添加 @WebService(targetNamespace = "http://whatever.you.want")对接口(interface)和实现的注释应该删除 WSDL 中的(需要)导入。

关于web-services - CXF 自己自动生成 WSDL 导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16011661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com