简体   繁体   English

soapui wsdl空请求

[英]soapui wsdl empty request

I have tried to generate a wsdl, but when importing it into soap UI the request template is empty - there is no warning or anything else that indicates a problem. 我试图生成一个wsdl,但是将其导入soap UI时,请求模板为空-没有警告或其他任何指示问题的信息。

this is the result 这是结果

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Body/>
</soapenv:Envelope>

The wsdl i have made looks like this (removed some for clarity) 我制作的wsdl看起来像这样(为清楚起见删除了一些)

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://localhost/powershell/" targetNamespace="http://localhost/powershell/" name="powershell">
    <wsdl:types>
        <xs:schema targetNamespace="http://localhost/powershell/" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
            <xs:element name="GetProcessRequest">
                <xs:complexType name="GetProcessRequestType">
                    <xs:sequence>
                        <xs:element name="field1" minOccurs="0" type="xs:string" nillable="false" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="GetProcessResponse">
                <xs:complexType name="GetProcessResponseType">
                    <xs:sequence>
                        <xs:element name="o1" minOccurs="0" type="xs:string" nillable="false" />
                        <xs:element name="o2" minOccurs="0" type="xs:string" nillable="false" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="ListGetProcessResponse">
                <xs:complexType name="ListGetProcessResponseType">
                    <xs:complexContent mixed="false">
                        <xs:restriction base="soapenc:Array">
                            <xs:attribute ref="soapenc:arrayType" wsdl:arrayType="GetProcessResponseType[]" />
                        </xs:restriction>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="GetItemsRequest">
                <xs:complexType name="GetItemsRequestType">
                    <xs:sequence>
                        <xs:element name="field1" minOccurs="0" type="xs:string" nillable="false" />
                        <xs:element name="field2" minOccurs="0" type="xs:string" nillable="false" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="GetItemsResponse">
                <xs:complexType name="GetItemsResponseType">
                    <xs:sequence>
                        <xs:element name="o1" minOccurs="0" type="xs:string" nillable="false" />
                        <xs:element name="o2" minOccurs="0" type="xs:string" nillable="false" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="ListGetItemsResponse">
                <xs:complexType name="ListGetItemsResponseType">
                    <xs:complexContent mixed="false">
                        <xs:restriction base="soapenc:Array">
                            <xs:attribute ref="soapenc:arrayType" wsdl:arrayType="GetItemsResponseType[]" />
                        </xs:restriction>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
        </xs:schema>
    </wsdl:types>
    <wsdl:portType name="powershell">
        <wsdl:operation name="GetProcess">
            <wsdl:input message="tns:GetProcessRequestMessage" />
            <wsdl:output message="tns:GetProcessResponseMessage" />
        </wsdl:operation>
        <wsdl:operation name="GetItems">
            <wsdl:input message="tns:GetItemsRequestMessage" />
            <wsdl:output message="tns:GetItemsResponseMessage" />
        </wsdl:operation>
        </wsdl:portType>
        <wsdl:binding name="powershellBinding" type="tns:powershell">
            <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
            <wsdl:operation name="GetProcess">
                <soap:operation soapAction="http://localhost/powershell.svc/GetProcess" style="document">
                    <wsdl:input>
                        <soap:body use="literal" />
                    </wsdl:input>
                    <wsdl:output>
                        <soap:body use="literal" />
                    </wsdl:output>
                </soap:operation>
            </wsdl:operation>
            <wsdl:operation name="GetItems">
                <soap:operation soapAction="http://localhost/powershell.svc/GetItems"     style="document">
                    <wsdl:input>
                        <soap:body use="literal" />
                    </wsdl:input>
                    <wsdl:output>
                        <soap:body use="literal" />
                    </wsdl:output>
                </soap:operation>
            </wsdl:operation>
        </wsdl:binding>
        <wsdl:service name="powershell">
            <wsdl:port binding="tns:powershellBinding" name="powershellBinding">
                <soap:address location="http://localhost/powershell.svc" />
            </wsdl:port>
        </wsdl:service>
        <wsdl:message name="GetProcessRequestMessage">
            <wsdl:part name="parameters" element="tns:GetProcessRequest" />
        </wsdl:message>
        <wsdl:message name="GetProcessResponseMessage">
            <wsdl:part name="parameters" element="tns:ListGetProcessResponse" />
        </wsdl:message>
        <wsdl:message name="GetItemsRequestMessage">
            <wsdl:part name="parameters" element="tns:GetItemsRequest" />
        </wsdl:message>
        <wsdl:message name="GetItemsResponseMessage">
            <wsdl:part name="parameters" element="tns:GetItemsResponse" />
        </wsdl:message>
    </wsdl:definitions>

As far as i can tell, everything should be linked correctly, but obviously im missing something somewhere, i just cannot find it. 据我所知,一切都应该正确链接,但显然我在某处缺少某些东西,我只是找不到它。

Your WSDL is not valid. 您的WSDL无效。 The definition of soap:operation element does not allow any content. soap:operation元素的定义不允许任何内容。 You need to close the element soap:operation straight away, without any subelements: 您需要立即关闭soap:operation元素,而没有任何子元素:

<soap:operation soapAction="http://localhost/powershell.svc/GetItems"     style="document" />

You need to do the following change: 您需要进行以下更改:

<wsdl:operation name="GetItems">
            <soap:operation soapAction="http://localhost/powershell.svc/GetItems"     style="document" />
                <wsdl:input>
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output>
                    <soap:body use="literal" />
                </wsdl:output>
        </wsdl:operation>

Similarly for other operations. 其他操作类似。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM