Какие изменения я должен внести в мой файл wsdl для непосредственного использования в SAP ABAP Proxy? - PullRequest
0 голосов
/ 05 июня 2019

Я создал сервис мыла, используя jax-ws в java. Я хочу использовать мой WSDL в SAP напрямую, используя прокси ABAP.Как я могу сделать мой WSDL совместимым с SAP?

Я пытался включить в свой файл WSDL значения Max и Min.Это работает, когда я тестирую с мылом UI.Но все равно получаю ошибку в SAP, как SOAP Fault Code: 3 Один или несколько блоков заголовка Soap не поняты.Я искал эту ошибку, но не смог найти ничего полезного.

Это файл WSDL, сгенерированный из XSD

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:sch="http://example.com/soap" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://example.com/soap" targetNamespace="http://example.com/soap">
  <wsdl:types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://example.com/soap">

    <xs:element name="getOrderRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="1" minOccurs="1" name="purchaseOrderNumber" type="xs:long"/>
                <xs:element maxOccurs="1" minOccurs="1" name="Type" type="xs:string"/>
                <xs:element maxOccurs="1" minOccurs="1" name="vCode" type="xs:string"/>
                <xs:element maxOccurs="1" minOccurs="1" name="vName" type="xs:string"/>
                <xs:element maxOccurs="1" minOccurs="1" name="Location" type="xs:string"/>
                <xs:element name="lineItem" type="tns:lineItem"                                                                                            
maxOccurs="unbounded" minOccurs="0"/>

            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="lineItem">
        <xs:sequence>
            <xs:element name="Order_No" type="xs:long"/>
            <xs:element name="Material" type="xs:string"/>
            <xs:element name="Description" type="xs:string"/>
            <xs:element name="UOM" type="xs:string"/>
            <xs:element name="Value" type="xs:decimal"/>
            <xs:element name="Tax" type="xs:string"/>
            <xs:element name="Item" type="xs:decimal"/>

        </xs:sequence>
    </xs:complexType>
    <xs:element name="getOrderResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="1" minOccurs="1" name="message" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>


</xs:schema>
  </wsdl:types>
  <wsdl:message name="getOrderRequest">
    <wsdl:part element="tns:getOrderRequest" name="getOrderRequest">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getOrderResponse">
    <wsdl:part element="tns:getOrderResponse" name="getOrderResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="OrderService">
    <wsdl:operation name="getOrder">
      <wsdl:input message="tns:getOrderRequest" name="getOrderRequest">
    </wsdl:input>
      <wsdl:output message="tns:getOrderResponse" name="getOrderResponse">
    </wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="OrderServiceSoap11" type="tns:OrderService">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="getOrder">
      <soap:operation soapAction=""/>
      <wsdl:input name="getOrderRequest">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="getOrderResponse">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="OrderServiceService">
    <wsdl:port binding="tns:OrderServiceSoap11" name="OrderServiceSoap11">
      <soap:address location="http://localhost:8089/Soap/app/OrderService"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

Я хочу знать, правильный ли мой файл WSDL?

1 Ответ

0 голосов
/ 05 июня 2019

Ваша политика wsdl и сервисные элементы отсутствуют.Вы сказали, что получаете SOAP-заголовок, понятый Ошибка.Заголовок SOAP обычно используется для аутентификации, и, как правило, старая версия SAP не поддерживает аутентификацию в сегменте заголовка.Измените свой код Java и попробуйте с обычной аутентификацией.

...