BusinessObjects Board

Help with batch job to web service (https)

I’ve got a batch job where I’m trying to call a web service.
I’ve imported the function and built the nested schema needed but always get the error message “There is no response for the web service. Please check if network, the web server and the service are running properly. Please also make sure the service client call time out is set properly”.

I’ve managed to send a request and get a response from the web service via soapUI.

I’ve also managed, via BODI, to send request and get a response on free web services that I found on the internet.

Any help on this? Where do I start looking for errors?
The soapUI is installed on BODI client machine running windows XP.
BODI Job Server is installed on a Solaris machine.
Also the web service is located on a https-URL. The free web services I tested was http-URLs.
BODI version 3.1.

Any thoughts are useful :slight_smile:
Thanks!

Lisa


Liffer :norway: (BOB member since 2011-02-03)

what is the datastore type ? Adapter, I think webService Datastore was introduced in 12.2

in case of HTTPS you will have to get the server Certificate, based on the datastore type that you are using you will have to set the certificate in DS


manoj_d (BOB member since 2009-01-02)

Thanks for your reply.

No, it is actually a datastore of type Web Service even though I’m not on 12.2.

So I do need a certificate, even though I’m not prompted for anything when visiting the URL in a browser?
Do you have any more information on where to install the certificate (BODI Job server running on Unix/Solaris)? Or do you have a link to a instructions for this?

Thanks,
Lisa


Liffer :norway: (BOB member since 2011-02-03)

ok, use Webservice datastore

since it’s HTTPS URL you will need the certificate, may be some setting in IE is not showing the certificate message

you can get the server certificate from the vendor who is providing the webservice or you can also download the certificate from the browser and save it in base64 binary encoded format to a file and use that

if you have fire fox, then on the left side before the URL Address bar there will be icon, click on view certificate, select the details tab and click on export, in the dialog box, select the Save as type X.509 Certificate with chain (PEM), you can save this with any name on your macihne

if you have IE , then click on the lock icon next to address bar, view the certificate, and export, select the base64 binary format, only thing is in IE I didn’t find a option to save the certificate chain, so you will have to click on each certificate in the chain and save to different file and once all are saved append all the certificates to one file

now go to the JobServer machine, go to %LINK_DIR%\ext\ folder, copy webserivce-c folder and rename it to webservice-weather (or give the name of the webservice that you are calling)
go to this new folder (webservice-weather) open axis2.xml in notepad,

since it’s https uncomment the following tag (transportReceiver)

it should look line some thing below

6060
false

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

go to Designer edit the datastore, click on Adavanced, in the Axis2/c config file path, enter the folder location that you created in %LINK_DIR%\ext

something like below
C:\Program Files (x86)\Business Objects\BusinessObjects Data Services\ext\webservice-weather


manoj_d (BOB member since 2009-01-02)

Wow, that’s a thorough answer! :slight_smile:
I will try to implement it asap and let you know if it works. Don’t have the opportunity today though, I’m afraid.

Two more questions though…

Passphrase - do I need to get this from the provider of the web service?

Datastore setting - in my advanced tab of web service data store I do not have the “Axis2/c config file path”. I do have a setting for “Keystore path” - is that the same? (see picture in attachment)

Lisa
Web Service datastore advanced settings.doc (34.0 KB)


Liffer :norway: (BOB member since 2011-02-03)

KEY_FILE and SSL_PASSPHRASE are not required unless you are using client certificate, and I don’t think you are using that, the 2 parameters are commented out

I think in 12.1 there was no option to use different axis2c config path, it was added in 12.2, in 12.1 the default location was used (%LINK_DIR%\ext\webservice-c) so you will have make all these changes in the (%LINK_DIR%\ext\webservice-c\axis2.xml file

you will not run into any issue as long as you are not using another webservice


manoj_d (BOB member since 2009-01-02)

Thank you thank you thank you!! :slight_smile:
It’s working!!

And my mistake with KEY_FILE and SSL_PASSPHRASE. Did not read carefully enough and missed that they were commented out.

Thanks again for your very kind and extremely useful help.

Lisa


Liffer :norway: (BOB member since 2011-02-03)

I’m writing a summary of the steps to implement this to save for future reference.

A clarifying question: is this OS independent, so that you have to do every step also for a BODI Job server running on for example windows?
Or is only applicable to a UNIX Job server?

Lisa


Liffer :norway: (BOB member since 2011-02-03)

yes the steps are OS independent


manoj_d (BOB member since 2009-01-02)

EDIT: We had problem with the certificate! So problem is solved and was a user problem, not a BODI problem…


Opening this thread again…

I’m struggling with the same job, again!
This time we are trying to migrate the jobs from a 3.1 to a 3.2 server.
So now I have all the fancy options in the Web Service Datastore that is mentioned by manoj_d above.
I’m following the steps and am referring to the certificate file in the axis2-file and the correct path is written in the “Axis2/c config file path” field in the datastore.

All the time I am getting the “No response”-error…

Any ideas?

I have tried to connect to other free web services (not on https but normal http-stuff) and those are working perfectly.

Thanks,
Lisa


EDIT: We had problem with the certificate! So problem is solved and was a user problem, not a BODI problem…


Liffer :norway: (BOB member since 2011-02-03)

I am experiancing the same problem too. Do you reslove the problem?


vickeychen (BOB member since 2010-05-03)

Hi,

yes!
In my case (the second time I had problems) there were something wrong with the certificate we downloaded from the web service provider.
I’m not really sure exactly what but maybe it was saved in the wrong format or whatever…

The first time we had problems we modified the axis-file in the way described above and that solved everything!

Good luck,
Lisa


Liffer :norway: (BOB member since 2011-02-03)

Does the web service you are consumming use WS-Security? We also need to setup policy.xml as well and need to enable WS-security in axis2.xml.


vickeychen (BOB member since 2010-05-03)

No, I’m sorry, it didn’t.
We did not have to care about the policyfile at all…

Lisa


Liffer :norway: (BOB member since 2011-02-03)

We have Implemented BODS - Webservice call sucessfully.

BODS can successful call web-service with WS-Security header information in SOAP message header. Make sure Policy file and Axis2.xml file settings are correct with valid firefox browser generated certificate in web-service-c folder.


veeru812 (BOB member since 2013-06-19)

Manoj - SAP Data Services Designer documentation talks about only supporting HTTP type REST Web Services, isn’t that the case? The REST web service i am trying to connect is rerouting to a SSO page. Are there any specific settings in REST Web Service Datastore that can be made to handle this?

Regards,
Adnan


boe_bods :india: (BOB member since 2008-03-14)