Skip to Content
author's profile photo Former Member
Former Member

SOAP setup

Hello xi expert,

I need to setup communication channel using SOAP adapter.(integration builder->business service->new service using SOAP adapter). It requires URL address of the SOAP adapter. I think the URL address of our current SOAP is xi itself. How do I find the URL address of the SOAP adapter in the system?

Many thanks

Jack

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

3 Answers

  • Best Answer
    author's profile photo Former Member
    Former Member
    Posted on Feb 08, 2005 at 09:26 PM

    Hi,

    For soap receiver adapter (where XI is a client requesting soap service), the target URL is obtained from the WSDL given to you by the soap service provider.

    For soap sender adapter (where XI is a provider of soap service), you must generate a WSDL in the Integration Directory to give to the client who wants to use it. For this, during the WSDL generation, you should override the default with:

    http://server:50000/XISOAPAdapter/MessageServlet?query

    where query-> channel=party:service:sender_agreement

    (note: the port 50000 is the default, yours maybe different)

    Regards,

    Bill

    Add a comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      Thanks for your input.

      Discovered that theres two ways of getting the WSDL:

      1. Go to the message interface and click on the WSDL tab

      2. Go to the integration builder (configuration time) -> Tools-> Define web service.

      These generate different Java classes after you run the tool (WSDL2Java in my case, since I use AXIS). I mean the WSDL generated by method 1 above just generates one java class, whereas the other WSDL generates a bunch of them (interfaces and classes).

      Heres the one i generated using method 2 above. Please let me know if that looks consistent with what you generated:

      <?xml version="1.0" encoding="ISO-8859-1"?>
      
      <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:p2="http://Supplier_Vendor/scenario" xmlns:p1="urn:xiworkshop:santoro:scenario2" name="SoapSender" targetNamespace="urn:xiworkshop:santoro:scenario2">
          <wsdl:types>
              <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://Supplier_Vendor/scenario" targetNamespace="http://Supplier_Vendor/scenario">
                  <xsd:import namespace="urn:xiworkshop:santoro:scenario2" />
                  <xsd:element xmlns:p0="urn:xiworkshop:santoro:scenario2" name="SOAP_messagetype" type="p0:Supplier_SOAP" />
              </xsd:schema>
              <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xiworkshop:santoro:scenario2" targetNamespace="urn:xiworkshop:santoro:scenario2">
                  <xsd:complexType name="Supplier_SOAP">
                      <xsd:annotation>
                          <xsd:appinfo source="http://sap.com/xi/TextID">
                          2449cbc0802d11d9c98000c09f450580
                          </xsd:appinfo>
                      </xsd:annotation>
                      <xsd:sequence>
                          <xsd:element name="SupplierName" type="xsd:string">
                              <xsd:annotation>
                                  <xsd:appinfo source="http://sap.com/xi/TextID">
                                  ecf303607d1311d9823cd610c0a801ad
                                  </xsd:appinfo>
                              </xsd:annotation>
                          </xsd:element>
                          <xsd:element name="SupplierNumber" type="xsd:string">
                              <xsd:annotation>
                                  <xsd:appinfo source="http://sap.com/xi/TextID">
                                  ecf303617d1311d99178d610c0a801ad
                                  </xsd:appinfo>
                              </xsd:annotation>
                          </xsd:element>
                      </xsd:sequence>
                  </xsd:complexType>
              </xsd:schema>
          </wsdl:types>
          <wsdl:message name="SOAP_messagetype">
              <wsdl:part name="SOAP_messagetype" element="p2:SOAP_messagetype" />
          </wsdl:message>
          <wsdl:portType name="SoapSender">
              <wsdl:operation name="SoapSender">
                  <wsdl:input message="p1:SOAP_messagetype" />
              </wsdl:operation>
          </wsdl:portType>
          <wsdl:binding name="SoapSenderBinding" type="p1:SoapSender">
              <soap:binding xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="document" transport="http://schemas.xmlsoap.org/soap/http" />
              <wsdl:operation name="SoapSender">
                  <soap:operation xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" soapAction="http://sap.com/xi/WebService/soap1.1" />
                  <wsdl:input>
                      <soap:body xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" use="literal" />
                  </wsdl:input>
              </wsdl:operation>
          </wsdl:binding>
          <wsdl:service name="SoapSenderService">
              <wsdl:port name="SoapSenderPort" binding="p1:SoapSenderBinding">
                  <soap:address xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" location="http://msssapxinw:50000/XISOAPAdapter/MessageServlet?channel=:SOAPClient:JJSSoap&version=3.0&Sender.Service=SOAPClient&Interface=urn%3Axiworkshop%3Asantoro%3Ascenario2%5ESoapSender" />
              </wsdl:port>
          </wsdl:service>
      </wsdl:definitions>
      
      

      Another potential question is : how do I make use of the Java classes that this WSDL generated for me, in my SOAP client?

      I guess you used xml spy, but we are using AXIS.

      Thanks for all your help and bearing with me 😊

      -Shailesh

  • author's profile photo Former Member
    Former Member
    Posted on Feb 08, 2005 at 09:30 PM

    Jack,

    The URL you want is probably in the configuration file of the SOAP adapter.

    I'm assuming that your SOAP adapter is up and running.

    If not, start the adapter engine by running run_adapter.bat. Go to http://<xiserver>:8200> and log on with sap/init which is the default user/pass

    Now you should be able to check which adapters are up and running.

    Indside the config file for the SOAP adapter, you should see a target url. Now, thats not the endpoint that the adapter engine exposes. The endpoint is actually at the port(4444 by default for sender adapter) and the url extensoin(also has a default value) you define in the config file.

    You are probably looking for one of these urls.

    Let me know if that helped.

    -Shailesh

    Add a comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      Hi Shailesh,

      Well the XSD is the MATMAS02 IDOC, e.g. I exported the IDOC to an XSD and imported it as External Definition as your vendor wants the structure. I guess SAP does not export a namespace for their own IDOCS when they create a XSD. I thought about giving it a namespace too. We will see.

      Thanks

      Stefan

  • author's profile photo Former Member
    Former Member
    Posted on Feb 22, 2005 at 08:55 PM

    Hi

    I get a Status Error 500 thrown from the XI Server which

    when I try to send a soap request. I am running SP9.

    SOAP:Server System Error INTERNAL.HTTP_RESP_STATUS_CODE_NOT_OK HTTP" target="_blank"> http://sap.com/xi/WebService/xi2.0"> INTERNAL.HTTP_RESP_STATUS_CODE_NOT_OK HTTP response contains status code 500 with the description Internal Server Error

    Any ideas?

    Thanks

    Ashish

    Add a comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      > One side note about XML Spy 2005. I've been a loyal

      > XML Spy user for over 5 years but it's not the best

      > tool for testing SOAP calls. It will work but it can

      > be confusing for a SOAP beginner:

      >

      > - It doesn't display the complete WSDL file even in

      > text mode. Try to find the soapAction attribute...

      >

      > - It doesn't set the SOAP Action automatically even

      > though it's in the WSDL. You need to set it

      > manually.

      >

      > - When you create a SOAP Request from a WSDL it

      > doesn't put the correct contents in the body of the

      > message. This was the most confusing.

      In my opinion this is an Integration Builder problem. The generated WSDL contains no SOAP Action. When you use such a WSDL to generate an SOAP request, XMP Spy takes the interface name instead of the message type name. MS Visual Studio .NET has also problem with such a WSDL.

      I add always manually the SOAP action. After that XML Spy generates a correct Request Message.

      BTW The WSDL which is generated by the Integration Builder always use the "soap" namespace prefix. But this namespace is not defined at the top of the WSDL. MS Visual Studio .NET has also problem with that. So I also add the definition of this namespace. After that MS VS NET is able to generate a valid proxy class.

      Sorry for my terrible English. 😕

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.