Svcutil支持WSDL

时间:2011-05-06 01:58:46

标签: svcutil.exe

我遇到了使用Svcutil编译WSDL(不确定其版本可能是1.1 / 2.0)文档的问题。它给出了以下警告。此外,svcutil也无法生成很少的枚举接口。可能因为下面的警告正在发生。我试图使用svcutil2(codeplex),但它根本不稳定。我的同事使用Java Axis 1.2工具编译了相同的WSDL文档,该工具运行良好。现在不知道该怎么做。 : - (

警告:无法导入操作bookDeal中名为TechnicalFault的故障。不支持的WSDL,故障消息只支持一个消息部分。此故障消息引用零个或多个消息部分。如果您具有对WSDL文件的编辑权限,则可以通过删除额外的消息部分来解决问题,以便故障消息仅引用一个部分。

警告:无法导入操作bookDeal中名为BusinessFault的故障。不支持的WSDL,故障消息只支持一个消息部分。此故障消息引用零个或多个消息部分。如果您具有对WSDL文件的编辑权限,则可以通过删除额外的消息部分来解决问题,以便故障消息仅引用一个部分。

警告:无法导入操作bookDeal中名为ValidationFault的错误。不支持的WSDL,故障消息只支持一个消息部分。此故障消息引用零个或多个消息部分。如果您具有对WSDL文件的编辑权限,则可以通过删除额外的消息部分来解决问题,以便故障消息仅引用一个部分。

警告:未处理命名空间“http://schemas.xmlsoap.org/wsdl/soap/”中的可选WSDL扩展元素“header”。的XPath:// WSDL:定义[@的targetNamespace = 'NS:// abcGroup / globalMarkets / tradeExecution / fxMmDealExecutionService / V1 / WSDL'] / WSDL:结合[@名称= 'SOAPService_Binding1'] / WSDL:操作[@名称=” bookDeal '] / WSDL:故障[@名称=' TechnicalFault']

警告:未处理命名空间“http://schemas.xmlsoap.org/wsdl/soap/”中的可选WSDL扩展元素“header”。的XPath:// WSDL:定义[@的targetNamespace = 'NS:// abcGroup / globalMarkets / tradeExecution / fxMmDealExecutionService / V1 / WSDL'] / WSDL:结合[@名称= 'SOAPService_Binding1'] / WSDL:操作[@名称=” bookDeal '] / WSDL:故障[@名称=' BusinessFault']

警告:命名空间'http:// sch中的可选WSDL扩展元素'header' 没有处理emas.xmlsoap.org/wsdl/soap/'。的XPath:// WSDL:定义[@的targetNamespace = 'NS:// abcGroup / globalMarkets / tradeExecution / fxMmDealExecutionService / V1 / WSDL'] / WSDL:结合[@名称= 'SOAPService_Binding1'] / WSDL:操作[@名称=” bookDeal'] / wsdl:fault [@ name ='ValidationFault']

如果我在WSDL中评论一些内容,那么svcutil会编译文档。你可以看到下面的注释行。

<wsdl:message name="bookDeal">
    <wsdl:part name="in" element="tns:bookDeal"/>
    <wsdl:part name="oob" element="ns0:messageContext"/>
</wsdl:message>
<wsdl:message name="bookDealResponse">
    <wsdl:part name="out" element="tns:bookDealResponse"/>
    <wsdl:part name="oob" element="ns0:messageContext"/>
</wsdl:message>
<wsdl:message name="bookDeal_TechnicalFault">
    <!--<wsdl:part name="techFault" element="ns1:technicalFault"/>-->
    <wsdl:part name="oob" element="ns0:messageContext"/>
</wsdl:message>
<wsdl:message name="bookDeal_BusinessFault">
    <!--<wsdl:part name="bizFault" element="ns1:businessFault"/>-->
    <wsdl:part name="oob" element="ns0:messageContext"/>
</wsdl:message>
<wsdl:message name="bookDeal_ValidationFault">
    <!--<wsdl:part name="vldFault" element="ns1:validationFault"/>-->
    <wsdl:part name="oob" element="ns0:messageContext"/>
</wsdl:message>
<wsdl:portType name="FXMMDealExecutionServiceInterface">
    <wsdl:operation name="bookDeal">
        <wsdl:input message="tns:bookDeal"/>
        <wsdl:output message="tns:bookDealResponse"/>
        <wsdl:fault name="TechnicalFault" message="tns:bookDeal_TechnicalFault"/>
        <wsdl:fault name="BusinessFault" message="tns:bookDeal_BusinessFault"/>
        <wsdl:fault name="ValidationFault" message="tns:bookDeal_ValidationFault"/>
    </wsdl:operation>
</wsdl:portType>
<wsdl:binding name="SOAPService_Binding1" type="tns:FXMMDealExecutionServiceInterface">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="bookDeal">
        <wsdl:documentation/>
        <soap:operation style="document" soapAction="bookDeal"/>
        <wsdl:input>
            <soap:body use="literal" parts="in"/>
            <soap:header use="literal" message="tns:bookDeal" part="oob"/>
        </wsdl:input>
        <wsdl:output>
            <soap:body use="literal" parts="out"/>
            <soap:header use="literal" message="tns:bookDealResponse" part="oob"/>
        </wsdl:output>
        <wsdl:fault name="TechnicalFault">
            <soap:fault use="literal" name="TechnicalFault"/>
            <!--<soap:header use="literal" message="tns:bookDeal_TechnicalFault" part="oob"/>-->
        </wsdl:fault>
        <wsdl:fault name="BusinessFault">
            <soap:fault use="literal" name="BusinessFault"/>
            <!--<soap:header use="literal" message="tns:bookDeal_BusinessFault" part="oob"/>-->
        </wsdl:fault>
        <wsdl:fault name="ValidationFault">
            <soap:fault use="literal" name="ValidationFault"/>
            <!--<soap:header use="literal" message="tns:bookDeal_ValidationFault" part="oob"/>-->
        </wsdl:fault>
    </wsdl:operation>
</wsdl:binding>

请帮忙!

1 个答案:

答案 0 :(得分:0)

如果我使用svcutil.exe /ixt /dconly,那么我没有得到任何警告,我可以看到所有故障类别。但在这种情况下我没有看到任何服务合同。

如果我删除了/dconly,那么我会收到同样的警告。