BusinessObjects Board

Job crashes when trying to consume a web service using SSL

Hi All!

I have a job which consumes a web service using a Webservice SOAP datastore. Initially the web service was

at an http address and the everything was working fine. Recently the address changed to an https. I made all

the required changes to enable SSL, but now the job crashes inside the query that makes the web service

function call.

O/S: Win Server 2008 R2 Standard
DS JobServer Ver: 14.2.3.549
Web service URL: https://webappstest.rclfoods.com/sapdataservices/FileManager.asmx?wsdl

I have made the following changes for SSL specified in the Integrators Guide and from searching the forums :

  • Downloaded a base64 encoded server certificate and saved it in a folder on the job server
  • Made a copy of the folder D:\Program Files (x86)\SAP BusinessObjects\Data Services\ext\webservice-c
  • Made the changes to the axis2.xml file in the new folder as per the Integrator’s Guide
  • Entered the path to the new folder in the Webservice datastore parameter “Axis2/c config file path”

The modified section of the axis2.xml is as follows:

<!-- ================================================= -->
<!-- Transport Ins -->
<!-- ================================================= -->

<transportReceiver name="http" class="axis2_http_receiver">
    <parameter name="port" locked="false">6060</parameter>
    <parameter name="exposeHeaders" locked="true">false</parameter>
</transportReceiver>

<transportReceiver name="https" class="axis2_http_receiver">
    <parameter name="port" locked="false">6060</parameter>
    <parameter name="exposeHeaders" locked="true">false</parameter>
</transportReceiver>

<!--transportReceiver name="tcp" class="axis2_tcp_receiver">
    <parameter name="port" locked="false">6060</parameter>
</transportReceiver-->


<!-- ================================================= -->
<!-- Transport Outs -->
<!-- ================================================= -->

<transportSender name="http" class="axis2_http_sender">
    <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
    <parameter name="xml-declaration" insert="false"/>
    <!--parameter name="Transfer-Encoding">chunked</parameter-->
    <!--parameter name="HTTP-Authentication" username="" password="" locked="true"/-->
    <!--parameter name="PROXY" proxy_host="127.0.0.1" proxy_port="8080" proxy_username="" proxy_password="" locked="true"/-->
</transportSender>

<!-- Uncomment the following with appropriate parameters to enable the SSL transport sender.
     Also make sure that the appropriate transport receiver is enabled above.-->
<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">D:/Program Files (x86)/SAP BusinessObjects/Data Services/ext/jre/lib/security/Entrust_Root.cer</parameter>
<!--parameter name="KEY_FILE">/path/to/client/certificate/chain/file</parameter>
<parameter name="SSL_PASSPHRASE">passphrase</parameter>
-->
	
<!-- Uncomment this one with the appropriate papameters to enable the TCP transport Sender-->
<!--transportSender name="tcp" class="axis2_tcp_sender">
    <parameter name="PROTOCOL" locked="false">TCP</parameter>
    <parameter name="xml-declaration" insert="false"/>
</transportSender-->

I have tried running the job from the command line with the -np -D parameters. The generated axis2_log.txt entries are:

[Fri Nov 06 09:39:20 2015] [debug] …\src\core\engine\phase.c(121) axis2_handler_t *request_uri_based_dispatcher added to the index 0 of the phase Transport
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\engine\phase.c(121) axis2_handler_t *addressing_based_dispatcher added to the index 1 of the phase Transport
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\engine\phase.c(121) axis2_handler_t *rest_dispatcher added to the index 0 of the phase Dispatch
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\engine\phase.c(121) axis2_handler_t *soap_message_body_based_dispatcher added to the index 1 of the phase Dispatch
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\engine\phase.c(121) axis2_handler_t *soap_action_based_dispatcher added to the index 2 of the phase Dispatch
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\engine\phase.c(121) axis2_handler_t *dispatch_post_conditions_evaluator added to the index 0 of the phase PostDispatch
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\engine\phase.c(121) axis2_handler_t *context_handler added to the index 1 of the phase PostDispatch
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\deployment\conf_builder.c(234) No custom dispatching order found. Continue with the default dispatching order
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\deployment\conf_builder.c(379) Module addressing found in axis2.xml
[Fri Nov 06 09:39:20 2015] [debug] …\util\src\class_loader.c(140) D:\Program Files (x86)\SAP BusinessObjects\Data Services\ext\webservice-HR_WEBSERVICES/lib/axis2_http_sender.dll shared lib loaded successfully
[Fri Nov 06 09:39:20 2015] [debug] …\util\src\class_loader.c(140) D:\Program Files (x86)\SAP BusinessObjects\Data Services\ext\webservice-HR_WEBSERVICES/lib/axis2_http_sender.dll shared lib loaded successfully
[Fri Nov 06 09:39:20 2015] [debug] …\util\src\class_loader.c(140) D:\Program Files (x86)\SAP BusinessObjects\Data Services\ext\webservice-HR_WEBSERVICES/lib/axis2_http_receiver.dll shared lib loaded successfully
[Fri Nov 06 09:39:20 2015] [debug] …\util\src\class_loader.c(140) D:\Program Files (x86)\SAP BusinessObjects\Data Services\ext\webservice-HR_WEBSERVICES/lib/axis2_http_receiver.dll shared lib loaded successfully
[Fri Nov 06 09:39:20 2015] [info] No files in the path D:\Program Files (x86)\SAP BusinessObjects\Data Services\ext\webservice-HR_WEBSERVICES/services.
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\deployment\dep_engine.c(1283) axis2_dep_engine_load_module_dll: DLL path is : D:\Program Files (x86)\SAP BusinessObjects\Data Services\ext\webservice-HR_WEBSERVICES/modules/addressing/axis2_mod_addr.dll
[Fri Nov 06 09:39:20 2015] [debug] …\util\src\class_loader.c(140) D:\Program Files (x86)\SAP BusinessObjects\Data Services\ext\webservice-HR_WEBSERVICES/modules/addressing/axis2_mod_addr.dll shared lib loaded successfully
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\deployment\dep_engine.c(1283) axis2_dep_engine_load_module_dll: DLL path is : D:\Program Files (x86)\SAP BusinessObjects\Data Services\ext\webservice-HR_WEBSERVICES/modules/logging/axis2_mod_log.dll
[Fri Nov 06 09:39:20 2015] [debug] …\util\src\class_loader.c(140) D:\Program Files (x86)\SAP BusinessObjects\Data Services\ext\webservice-HR_WEBSERVICES/modules/logging/axis2_mod_log.dll shared lib loaded successfully
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\deployment\dep_engine.c(1283) axis2_dep_engine_load_module_dll: DLL path is : D:\Program Files (x86)\SAP BusinessObjects\Data Services\ext\webservice-HR_WEBSERVICES/modules/rampart/mod_rampart.dll
[Fri Nov 06 09:39:20 2015] [debug] …\util\src\class_loader.c(140) D:\Program Files (x86)\SAP BusinessObjects\Data Services\ext\webservice-HR_WEBSERVICES/modules/rampart/mod_rampart.dll shared lib loaded successfully
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_holder.c(139) Add handler AddressingInHandler to phase Transport
[Fri Nov 06 09:39:20 2015] [info] [rampart][rampart_mod] rampart_mod initialized
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_resolver.c(139) Service name is : ANONYMOUS_SERVICE
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_resolver.c(2058) Trying to add this handler AddressingInHandler to system pre defined phases , but those handlers are already added to global chain which run irrespective of the service
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_holder.c(139) Add handler AddressingOutHandler to phase MessageOut
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_holder.c(139) Add handler AddressingOutHandler to phase MessageOut
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_resolver.c(2058) Trying to add this handler AddressingInHandler to system pre defined phases , but those handlers are already added to global chain which run irrespective of the service
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_holder.c(139) Add handler AddressingOutHandler to phase MessageOut
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_holder.c(139) Add handler AddressingOutHandler to phase MessageOut
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_resolver.c(2058) Trying to add this handler AddressingInHandler to system pre defined phases , but those handlers are already added to global chain which run irrespective of the service
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_holder.c(139) Add handler AddressingOutHandler to phase MessageOut
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\phaseresolver\phase_holder.c(139) Add handler AddressingOutHandler to phase MessageOut
[Fri Nov 06 09:39:20 2015] [error] …\axiom\src\parser\libxml2\libxml2_reader_wrapper.c(305) Error occurred creating XML stream reader
[Fri Nov 06 09:39:20 2015] [error] …\neethi\src\util.c(37) Out of memory
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\clientapi\op_client.c(888) Start:axis2_op_client_infer_transport
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\clientapi\op_client.c(954) End:axis2_op_client_infer_transport
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\engine\phase.c(210) Invoke the handler AddressingOutHandler within the phase MessageOut
[Fri Nov 06 09:39:20 2015] [info] Starting addressing out handler
[Fri Nov 06 09:39:20 2015] [debug] …\src\modules\mod_addr\addr_out_handler.c(133) No action present. Stop processing addressing
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\transport\http\sender\http_transport_sender.c(246) ctx_epr:https://webappstest.rclfoods.com/sapdataservices/FileManager.asmx
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\transport\http\sender\http_transport_sender.c(805) using axis2 native http sender.
[Fri Nov 06 09:39:20 2015] [debug] …\src\core\transport\http\sender\http_sender.c(416) msg_ctx_id:urn:uuid:a180657f-e179-4085-93f2-1d32a6fa750c

There are two error lines in the log however I have read on forums that these are normal and don’t cause any problem:

[Fri Nov 06 09:39:20 2015] [error] …\axiom\src\parser\libxml2\libxml2_reader_wrapper.c(305) Error occurred creating XML stream reader
[Fri Nov 06 09:39:20 2015] [error] …\neethi\src\util.c(37) Out of memory

Note that one of the input parameters of the web service function is an XML string, usually this string would be about 3 MB in size, but for testing I reduced it to 918 bytes but that made no difference.

Also,I have tried different SSL certificates, root level only, root and second level, all three levels. If I comment out the SERVER_CERT parameter in the axis2.xml I get a certificate error logged in the axis2_log file and the job doesn’t crash but returns the error "There is no response for the webservice ", when I enable it again I don’t get any certificate errors but the job crashes at the point of the web service call and I don’t get any reply data back.

Can anyone help, I have run out of ideas !!!


ClintL :south_africa: (BOB member since 2011-01-06)

Hello Clint, I hope you can read this message.

Hello everybody.

I’m trying to consume a SOAP Web Service ( HTTPS ) using a Web Service SOAP Datastore in Data Services 4.2.

Same thing that Clint was trying to do.

It’s been days since I’m tying to configure this without any luck.

SOAPUI … you know ! the popular SOAP testing tool is connecting very well and is able to parse / connect / execute methods… Everything is okay using SOAPUI which is located in the same Server as Data Services.

My server is outside any firewall so I don’t need any proxy.

This is what I’m doing:

1 .- Create a copy of the Folder \Data Services\ext\webservice-c … my new folder is \Data Services\ext\webservice-CASD

2 .- Modify axis2.xml file … here I’m including https options and including a full file path and file name to the SSL certificate.

3 .- Certificate is located as well in the same folder.

4 .- set datastore with wss user , password, a path to the axis2 location ( the new folder I created before )

5 .- Import/parse URL was okay and I can see the methods available for the web services. Web Service External Metadata is visible and I can import the functions/methods.

6 .- create a Data flow calling the web service function and un-nesting.

7 .- I ran the job on the command line using -D - np Options to get the axis2_log file.

RESULTS

I’m getting an error on the axis2_log file and

axis2_log

[Tue Nov 22 18:17:39 2016] [debug] …\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Tue Nov 22 18:17:39 2016] [debug] …\src\core\phaseresolver\phase_holder.c(139) Add handler LoggingOutHandler to phase MessageOut
[Tue Nov 22 18:17:39 2016] [debug] …\src\core\phaseresolver\phase_holder.c(139) Add handler AddressingOutHandler to phase MessageOut
[Tue Nov 22 18:17:39 2016] [error] …\axiom\src\parser\libxml2\libxml2_reader_wrapper.c(305) Error occurred creating XML stream reader
[Tue Nov 22 18:17:39 2016] [error] …\neethi\src\util.c(37) Out of memory
[Tue Nov 22 18:17:39 2016] [info] [rampart][rampart_mod] rampart_mod shutdown

Data Services error

Unable to create WS-security Policy. Ensure that the policy file {1} exists and is valid

Please any help will be greatly appreciated.

Thank you so much.


jairzinho.bq (BOB member since 2016-11-23)

Let me know if you get this working or if you have found any good documentation on consuming web services over https with Data Services. I’ve been trying to get one working for some time now, but it’s really a hassle (works fine in SoapUI)…


brudosm (BOB member since 2014-12-12)

Can you share the link of the Webservice that you are trying to consume?

Regards,
Jayant


Jay_mKumar :india: (BOB member since 2016-03-24)