cancel
Showing results for 
Search instead for 
Did you mean: 

BODS SOAP Web Service Connection error RUN-248005

Former Member
0 Kudos

Hi Experts,

I need help connecting SOAP web service to BODS. We have configured the initial set up by importing the functions from the WSDL that was provided to us. The WSDL provided us with a request and reply schema as follows:

We then created the data service job that would consume the function call. An overview of the dataflow is as follows:


When we run the job with null values for the source table the job returns no errors, but returns no data either into the destination table (Which we think is to be expected because we have no parameters to search on). If we add a value to the source table that is a required field for WSDL GET function (sys_ID) the job runs, but produces the error shown below:

We configured the data flow by using a reference document that can be found at this link: http://www.dwbiconcepts.com/etl/23-etl-bods/158-web-service-call-in-sap-data-services.html.

Any help in regards to why we are getting a “No response to web service error” would be much appreciated! Also, if further detail is needed please feel free to ask.

Accepted Solutions (1)

Accepted Solutions (1)

0 Kudos

Hello Wesley

I'm trying the same thing and have the exact same issue as yourself.

Did you have any progress on this by now?

Many Thanks

Fliip

Former Member
0 Kudos

This message was moderated.

Former Member
0 Kudos

Yes we did make progress. Follow the steps listed below.


Pre-Configuration

  • A WSDL for BODS can be provided from your vendor (Amazon or Twitter) or created in-house.  In my tutorial I will be using ServiceNow.  ServiceNow is a platform-as-a-service (PaaS) provider of IT service management (ITSM) software.
  • The WSDL provided should look like this:

           https://<instance>.service-now.com/incident.do?WSDL

  • To verify that the WSDL works you can open it in a browser to see the xml schema.  Since the WSDL is HTTPS the browser will prompt you to enter credentials in order to view it.  The username and password will need to be provided to you from vendor you are trying to connect to.

  • BODS requires that any web service connection that is https to have a certificate saved to its internal configuration on the job server where the application resides. The certificate is referenced when the call goes out to verify authentication. 
  • You can get the server certificate from the vendor who is providing the web service or you can also download the certificate from the browser and save it in base64 binary encoded format to a file and use that.  In my example I will be using Firefox to export.
  • if you have fire fox, then on the left side before the URL Address bar there will be a lock icon, click on view certificate, select the details tab, select the *.service- now.com  and click on export, in the dialog box, select the Save as type X.509 Certificate (PEM), you can save this with any name on your machine.

  • Now go to the JobServer machine, go to %LINK_DIR%\ext\ folder, open axis2.xml in notepad,

    since it's https uncomment the following tag (transportReceiver)
    <!--transportReceiver name="https" class="axis2_http_receiver">
    <parameter name="port" locked="false">6060</parameter>
    <parameter name="exposeHeaders" locked="true">false</parameter>
    </transportReceiver-->

    it should look line something below
    <transportReceiver name="https" class="axis2_http_receiver">
    <parameter name="port" locked="false">6060</parameter>
    <parameter name="exposeHeaders" locked="true">false</parameter>
    </transportReceiver>

    uncomment the following tag (transportSender) and comment out the parameter KEY_FILE and SSL_PASSPHRASE, enter the complete location of the certificate that you saved from the browser in the SERVER_CERT parameter. you can save the certificate also in this folder

    <!--transportSender name="https" class="axis2_http_sender">
    <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
    <parameter name="xml-declaration" insert="false"/>
    </transportSender>
    <parameter name="SERVER_CERT">/path/to/ca/certificate</parameter>
    <parameter name="KEY_FILE">/path/to/client/certificate/chain/file</parameter>
    <parameter name="SSL_PASSPHRASE">passphrase</parameter>
    -->

    this should look like

    <transportSender name="https" class="axis2_http_sender">
    <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
    <parameter name="xml-declaration" insert="false"/>
    </transportSender>
    <parameter name="SERVER_CERT">enter the certificate path</parameter>
    <!--parameter name="KEY_FILE">/path/to/client/certificate/chain/file</parameter-->
    <!--parameter name="SSL_PASSPHRASE">passphrase</parameter-->

    save this file and open this file is browser to make sure that the XML is valid

 

  • ****How to set up multiple axis files****

Creating a Datastore

  • Select Project -> New- >  Datastore

          Datastore name: Applicable Name

          Datastore Type:  Web Service

          Web Service URL: https://<instance>.service-now.com/incident_list.do?WSDL

          Advance <<

          User name: *****

          Password: ******

          Axis2/c config file path: \Program Files (x86)\Business Objects\BusinessObjects Data           Services\ext\Service_now

Former Member
0 Kudos

Thankss ,

Former Member
0 Kudos

Hi Wesley, I am having the same problem, but my web service does not have a SSL Certificate. Would you by any chance know what  the ports on Transport Receiver mean? What is the purpose of the port 6060 on this case?

My job Server uses por 3500, isn´t that what it should be on the axis2.xml file?

Thank you in advance

Answers (1)

Answers (1)

Former Member
0 Kudos

This is extremely helpful.  One (possibly silly) question.  Since I'm using a certificate to connect, why would I have a username?  I can understand a password to decrypt the certificate, but I'm not sure where I'd get a username.  I'm going to give it a shot without one, but I wanted to tell you how helpful this post is.  It saved me a lot of time.

Clay

Former Member
0 Kudos

The source of the data I was using in the example needed to have a username and password to access the WSDL data on their end.  The cert was used for connecting to the servers from our end. I have never tried to connect without the username.  It maybe work without it.

Former Member
0 Kudos

That makes sense.  In my situation, doing it without the username worked just fine.  Thanks again for your detailed documentation of this.