wsimport使用SOAP 1.2 for SOAP 1.1 wsdl

时间:2017-02-28 07:57:50

标签: java soap wsdl wsimport

我已经为SOAP 1.1提供了这个wsdl,一旦我尝试使用wsimport生成我的java代码,它将wsdl处理为1.2。哪个次序会引发错误: com.sun.tools.ws.wsdl.framework.ParseException:无效的扩展元素:“soap:body”(在命名空间“http://schemas.xmlsoap.org/wsdl/soap/”中)

如果我更改了肥皂名称更改: 的xmlns:SOAP =“http://schemas.xmlsoap.org/wsdl/soap12/ 至 的xmlns:SOAP =“http://schemas.xmlsoap.org/wsdl/soap/ 它生成我的代码,但我不确定它有什么其他后果(我目前还无法连接到端点)。另外,我不想破解wsdl。

在wsimport中是否存在任何已知错误,让它错误地将1.1 wsdl处理为1.2? (嗯,已知......经过几个小时的搜索,我找不到任何关于此内容的信息) 是否有一个工作,例如我可以强迫wsimport使用肥皂1.1? 没有编辑wsdl的任何其他解决方案?

这里的wsdl代码:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:rpa="urn:ns:cdm:reisinformatie:data:vi:1" xmlns:tns="urn:ns:cdm:reisinformatie:message:actuelelandelijkeberichten:1" xmlns:ns="urn:ns:cdm:reisinformatie:message:actuelelandelijkeberichten:1" targetNamespace="urn:ns:cdm:reisinformatie:message:actuelelandelijkeberichten:1">
    <wsdl:types>
        <xsd:schema xmlns:rpa="urn:ns:cdm:reisinformatie:data:vi:1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:ns:cdm:reisinformatie:message:actuelelandelijkeberichten:1" targetNamespace="urn:ns:cdm:reisinformatie:message:actuelelandelijkeberichten:1" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
            <xsd:import schemaLocation="ri-cdm-vi-lab.xsd" namespace="urn:ns:cdm:reisinformatie:data:vi:1"/>
            <xsd:element name="GeefActueleLandelijkeBerichtenRequestMessage" type="rpa:GeefActueleLandelijkeBerichtenRequestMessageType"/>
            <xsd:element name="GeefActueleLandelijkeBerichtenResponseMessage" type="rpa:GeefActueleLandelijkeBerichtenResponseMessageType"/>
            <xsd:element name="GeefActueleLandelijkeBerichtenFaultMessage" type="rpa:GeefActueleLandelijkeBerichtenFaultMessageType"/>
        </xsd:schema>
    </wsdl:types>
    <wsdl:message name="GeefActueleLandelijkeBerichtenRequest">
        <wsdl:part name="parameter" element="tns:GeefActueleLandelijkeBerichtenRequestMessage"/>
    </wsdl:message>
    <wsdl:message name="GeefActueleLandelijkeBerichtenResponse">
        <wsdl:part name="parameter" element="tns:GeefActueleLandelijkeBerichtenResponseMessage"/>
    </wsdl:message>
    <wsdl:message name="GeefActueleLandelijkeBerichtenFault">
        <wsdl:part name="Fout" element="tns:GeefActueleLandelijkeBerichtenFaultMessage"/>
    </wsdl:message>
    <wsdl:portType name="ActueleLandelijkeBerichtenSoap">
        <wsdl:documentation>Actuele LandelijkeBerichten Soap Port</wsdl:documentation>
        <wsdl:operation name="GeefActueleLandelijkeBerichten">
            <wsdl:input message="tns:GeefActueleLandelijkeBerichtenRequest"/>
            <wsdl:output message="tns:GeefActueleLandelijkeBerichtenResponse"/>
            <wsdl:fault name="Fout" message="tns:GeefActueleLandelijkeBerichtenFault"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="ActueleLandelijkeBerichtenSoap" type="tns:ActueleLandelijkeBerichtenSoap">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:documentation>Actuele LandelijkeBerichten Soap Binding</wsdl:documentation>
        <wsdl:operation name="GeefActueleLandelijkeBerichten">
            <soap:operation soapAction="urn:GeefActueleLandelijkeBerichten"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="Fout">
                <soap:body use="literal"/>
            </wsdl:fault>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="ActueleLandelijkeBerichten">
        <wsdl:documentation>Actuele LandelijkeBerichten Service</wsdl:documentation>
        <wsdl:port name="RPAActueleLandelijkeBerichtenSoap" binding="tns:ActueleLandelijkeBerichtenSoap">
            <soap:address location="NotDefined"/>
            <wsdl:documentation>Reisinformatie Pull Applicatie Actuele LandelijkeBerichten Soap Service</wsdl:documentation>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

注意:两个.xsd不包含在内

1 个答案:

答案 0 :(得分:0)

是的,我们已决定使用CXF(可行)生成代码,然后将其添加到传递文件中。

此外,我们公司的另一个团队遇到了同样的问题,也找不到解决方案。

所以,答案似乎是:使用CXF。