BusinessObjects Board

Web Service Setup w/HTTPS- No Response

I’ve gone through the various steps to setup this web service per documentation and am still coming up with:


(14.2) 07-21-15 13:02:17 (E) (1144:6000) RUN-248005: |Data flow df_test_epf|Transform Query-Function1 There is no response for the web service <getEpfVersion>. Ensure that the network, web server, and service are running properly. Also ensure that the service client call time out is set properly.

Full version of DS is 4.2 SP1: 14.2.1.224

URL for WSDL is here: https://epf.usps.gov/com/usps/epf/filedownload.cfc?wsdl

I’ve configured my own axis2.xml in E:\Program Files (x86)\SAP BusinessObjects\Data Services\ext\webservice-epf to read as follows. Note the path to this file is a copy of the webservice-c directory in the ext directory.


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

–snip–


    <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">E:\data\usps_ncoa_daily_del\conf\20150721.crt</parameter>
    <!--parameter name="KEY_FILE">/path/to/client/certificate/chain/file</parameter-->
    <!--parameter name="SSL_PASSPHRASE">passphrase</parameter-->

And the last few lines from calling the job with -D -np are as follows:


[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\phaseresolver\phase_resolver.c(2058) Trying to add this handler LoggingInHandler to system pre defined phases , but those handlers are already added to global chain which run irrespective of the service
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Tue Jul 21 13:14:16 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
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\phaseresolver\phase_resolver.c(723) Module name is:logging
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\phaseresolver\phase_holder.c(139) Add handler LoggingOutHandler to phase MessageOut
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\phaseresolver\phase_holder.c(139) Add handler AddressingOutHandler to phase MessageOut
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\phaseresolver\phase_resolver.c(723) Module name is:logging
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\phaseresolver\phase_resolver.c(723) Module name is:logging
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\phaseresolver\phase_holder.c(139) Add handler LoggingOutHandler to phase MessageOut
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\phaseresolver\phase_holder.c(139) Add handler AddressingOutHandler to phase MessageOut
[Tue Jul 21 13:14:16 2015] [error] ..\..\axiom\src\parser\libxml2\libxml2_reader_wrapper.c(305) Error occurred creating XML stream reader
[Tue Jul 21 13:14:16 2015] [error] ..\..\neethi\src\util.c(37) Out of memory
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\clientapi\op_client.c(888) Start:axis2_op_client_infer_transport
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\clientapi\op_client.c(954) End:axis2_op_client_infer_transport
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\engine\phase.c(210) Invoke the handler LoggingOutHandler within the phase MessageOut
[Tue Jul 21 13:14:16 2015] [info]  Starting logging out handler .........
[Tue Jul 21 13:14:16 2015] [info]  Output message: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body/></soapenv:Envelope>
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\engine\phase.c(210) Invoke the handler AddressingOutHandler within the phase MessageOut
[Tue Jul 21 13:14:16 2015] [info]  Starting addressing out handler
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\modules\mod_addr\addr_out_handler.c(133) No action present. Stop processing addressing
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\transport\http\sender\http_transport_sender.c(246) ctx_epr:https://epf.usps.gov/com/usps/epf/filedownload.cfc
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\transport\http\sender\http_transport_sender.c(805) using axis2 native http sender.
[Tue Jul 21 13:14:16 2015] [debug] ..\..\src\core\transport\http\sender\http_sender.c(416) msg_ctx_id:urn:uuid:9b537e9f-1be7-4247-b120-bef4cf17a2fb
[Tue Jul 21 13:14:16 2015] [info]  [ssl client] Client certificate chain filenot specified
[Tue Jul 21 13:14:16 2015] [error] ..\..\src\core\transport\http\sender\http_client.c(667) Content-Type header missing in HTTP response
[Tue Jul 21 13:14:16 2015] [error] ..\..\src\core\transport\http\sender\http_client.c(668) Response does not contain Content-Type
[Tue Jul 21 13:14:16 2015] [error] ..\..\src\core\transport\http\sender\http_sender.c(1381) status_code < 0
[Tue Jul 21 13:14:16 2015] [error] ..\..\src\core\engine\engine.c(179) Transport sender invoke failed
[Tue Jul 21 13:14:16 2015] [info]  [rampart][rampart_mod] rampart_mod shutdown

Lastly, I cannot make an adapter work for this WSDL as the adapter is complaining about the need of a DataServices.html file.

Any help would be appreciated!

Edit1: We are using a proxy server. When I enter the proxy in the datastore, still same error. Also, this web service works in soapUI when I configure the proxy accordingly.


nhohman (BOB member since 2008-11-19)

some issue with webservice datastore
for webservice Adapter do the following
Create a file named DataServices.html in %DS_COMMON_DIR%\ext folder on the Adapter job server
edit the DataServices.html using notepad (do not double click)
enter the DataServices webservices URL
for example:- add the following line
http://localhost:8080/DataServices

save the attached truststore (extract from zip first) file on the Adapter Job Server
set the Keystore path in the Adpater Datastore to the location where trust file is saved
C:\temp\truststore\truststore

if both DS Web-tier and Adapter job server are on the same machine , you should be able to import the function and call function
truststore.zip (2.0 KB)


manoj_d (BOB member since 2009-01-02)

Thanks for the suggestions. Working on implementing and will have an update shortly. Thank you!

Tried a few more things:

  1. manipulate the axis2.xml to enable various other parameters such as inflow and outflow Security.
  2. as well, added the cert path to the SERVER_CERT/KEY_FILE. setting each of those in different combinations produced an error (in the axis2_log) such that made me believe there was something wrong with the certificate. i exported a different format (binary), and then did each of the chain separately. then built them all into one file and tried using that- still no luck. Below are the updated/modified axis2.xml as well as the axis2_log.txt

<axisconfig name="Axis2/C">
    <!-- ================================================= -->
    <!-- Parameters -->
    <!-- ================================================= -->
    <!-- Uncomment following to enable MTOM support globally -->
    <!--parameter name="enableMTOM" locked="false">true</parameter-->

    <!-- Set the suitable size for optimum memory usage when sending large attachments -->
    <!--parameter name="MTOMBufferSize" locked="false">10</parameter-->
    <!--parameter name="MTOMMaxBuffers" locked="false">1000</parameter-->
    <!--parameter name="EnableMTOMServiceCallback" locked="false">true</parameter-->
    <!--parameter name="attachmentDIR" locked="false">/path/to/the/attachment/caching/dir/</parameter-->    
    <!--parameter name="MTOMCachingCallback" locked="false">/path/to/the/caching_callback</parameter-->
    <!--parameter name="MTOMSendingCallback" locked="false">/path/to/the/sending_callback</parameter-->

    <!-- Enable REST -->
    <parameter name="enableREST" locked="false">true</parameter>

    <!-- Uncomment following to persist op_ctx, useful with RM -->
    <!--parameter name="persistOperationContext" locked="false">true</parameter-->

    <!--if you want to extract the service archive file and work with that please uncomment this-->
    <!--else , it wont extract archive file or does not take into consideration if someone drop-->
    <!--exploded directory into /service directory-->
    <!--<parameter name="extractServiceArchive" locked="false">true</parameter>-->


    <!-- ================================================= -->
    <!-- Message Receivers -->
    <!-- ================================================= -->
    <!-- This is the Deafult Message Receiver for the Request Response style Operations -->
    <!--messageReceiver mep="INOUT" class="axis2_receivers"/-->

  
    <!-- ================================================= -->
    <!-- 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">\\bods01dev\e$\data\usps_ncoa_daily_del\conf\20150721.crt</parameter>
    <parameter name="KEY_FILE">\\bods01dev\e$\data\usps_ncoa_daily_del\conf\20150721.crt</parameter>
    <parameter name="SSL_PASSPHRASE">passphrase1</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-->


    <!-- ================================================= -->
    <!-- Global Modules  -->
    <!-- ================================================= -->
    <!-- Comment this to disable Addressing -->
    <module ref="logging"/>
    <module ref="addressing"/>
    <!--module ref="rampart"/--> 



    <!--Configuring module , providing paramters for modules whether they refer or not-->
    <!--<moduleConfig name="addressing">-->
    <!--<parameter name="addressingPara" locked="false">N/A</parameter>-->
    <!--</moduleConfig>-->

    <!-- ================================================= -->
    <!-- Phases  -->
    <!-- ================================================= -->
    <phaseOrder type="inflow">
        <!-- System pre defined phases       -->
        <phase name="Transport"/>
        <phase name="PreDispatch"/>
        <phase name="Dispatch"/>
        <phase name="PostDispatch"/>
        <phase name="Security"/>
        <!-- End system pre defined phases       -->
        <!-- After PostDispatch phase, module or service author can add any phase as required  -->
        <!-- User defined phases could be added here -->
        <!--phase name="userphase1"/-->
    </phaseOrder>
    <phaseOrder type="outflow">
        <!-- User defined phases could be added here -->
        <!--phase name="userphase1"/-->
        <!--system predefined phase-->
        <phase name="MessageOut"/>
        <phase name="Security"/>
    </phaseOrder>
    <phaseOrder type="INfaultflow">
        <!-- User defined phases could be added here -->
        <!--phase name="userphase1"/-->
    </phaseOrder>
    <phaseOrder type="Outfaultflow">
        <!-- User defined phases could be added here -->
        <!--phase name="userphase1"/-->
        <phase name="MessageOut"/>
    </phaseOrder>
</axisconfig>

[Wed Jul 22 09:35:38 2015] [debug] ..\..\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Wed Jul 22 09:35:38 2015] [debug] ..\..\src\core\phaseresolver\phase_holder.c(139) Add handler LoggingOutHandler to phase MessageOut
[Wed Jul 22 09:35:38 2015] [debug] ..\..\src\core\phaseresolver\phase_holder.c(139) Add handler AddressingOutHandler to phase MessageOut
[Wed Jul 22 09:35:38 2015] [debug] ..\..\src\core\phaseresolver\phase_resolver.c(723) Module name is:logging
[Wed Jul 22 09:35:38 2015] [debug] ..\..\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Wed Jul 22 09:35:38 2015] [debug] ..\..\src\core\phaseresolver\phase_resolver.c(723) Module name is:logging
[Wed Jul 22 09:35:38 2015] [debug] ..\..\src\core\phaseresolver\phase_resolver.c(723) Module name is:addressing
[Wed Jul 22 09:35:38 2015] [debug] ..\..\src\core\phaseresolver\phase_holder.c(139) Add handler LoggingOutHandler to phase MessageOut
[Wed Jul 22 09:35:38 2015] [debug] ..\..\src\core\phaseresolver\phase_holder.c(139) Add handler AddressingOutHandler to phase MessageOut
[Wed Jul 22 09:35:38 2015] [error] ..\..\axiom\src\parser\libxml2\libxml2_reader_wrapper.c(305) Error occurred creating XML stream reader
[Wed Jul 22 09:35:38 2015] [error] ..\..\neethi\src\util.c(37) Out of memory
[Wed Jul 22 09:35:38 2015] [debug] ..\..\src\core\clientapi\op_client.c(888) Start:axis2_op_client_infer_transport
[Wed Jul 22 09:35:38 2015] [debug] ..\..\src\core\clientapi\op_client.c(954) End:axis2_op_client_infer_transport
[Wed Jul 22 09:35:38 2015] [debug] ..\..\src\core\engine\phase.c(210) Invoke the handler LoggingOutHandler within the phase MessageOut
[Wed Jul 22 09:35:38 2015] [info]  Starting logging out handler .........
[Wed Jul 22 09:35:38 2015] [info]  Output message: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body/></soapenv:Envelope>
[Wed Jul 22 09:35:38 2015] [debug] ..\..\src\core\engine\phase.c(210) Invoke the handler AddressingOutHandler within the phase MessageOut
[Wed Jul 22 09:35:38 2015] [info]  Starting addressing out handler
[Wed Jul 22 09:35:38 2015] [debug] ..\..\src\modules\mod_addr\addr_out_handler.c(133) No action present. Stop processing addressing
[Wed Jul 22 09:35:38 2015] [debug] ..\..\src\core\transport\http\sender\http_transport_sender.c(246) ctx_epr:https://epf.usps.gov/com/usps/epf/filedownload.cfc
[Wed Jul 22 09:35:38 2015] [debug] ..\..\src\core\transport\http\sender\http_transport_sender.c(805) using axis2 native http sender.
[Wed Jul 22 09:35:38 2015] [debug] ..\..\src\core\transport\http\sender\http_sender.c(416) msg_ctx_id:urn:uuid:07f82907-bf4a-4443-aadd-797fe5895f9a
[Wed Jul 22 09:35:38 2015] [error] ..\..\src\core\transport\http\sender\ssl\ssl_utils.c(95) [ssl client] Loading client key failed, key file \\bods01dev\e$\data\usps_ncoa_daily_del\conf\20150721.crt
[Wed Jul 22 09:35:38 2015] [error] ..\..\src\core\transport\http\sender\ssl\ssl_stream.c(101) Error occurred in SSL engine
[Wed Jul 22 09:35:38 2015] [error] ..\..\src\core\transport\http\sender\http_client.c(287) Data stream creation failed for Host epf.usps.gov and 443 port
[Wed Jul 22 09:35:38 2015] [error] ..\..\src\core\transport\http\sender\http_client.c(544) client data stream  null or socket error for host epf.usps.gov and 443 port
[Wed Jul 22 09:35:38 2015] [error] ..\..\src\core\transport\http\sender\http_client.c(548) A read attempt(HTTP) for the reply without sending the request
[Wed Jul 22 09:35:38 2015] [error] ..\..\src\core\transport\http\sender\http_sender.c(1381) status_code < 0
[Wed Jul 22 09:35:38 2015] [error] ..\..\src\core\engine\engine.c(179) Transport sender invoke failed
[Wed Jul 22 09:35:38 2015] [info]  [rampart][rampart_mod] rampart_mod shutdown
  1. curious to know- I’m not using a policy.xml file here, do I need one?
  2. lastly, how did you know there was an issue with the web service datastore? anything within an aforementioned log?
  3. i tried this on a different server that’s on a different (non-proxy) network. the version of DS was 14.2.4 and the result was the same error output.

nhohman (BOB member since 2008-11-19)

I added the truststore and was able to import the methods using the Adapter datastore.

However, when I ran the job, I get the below error from my template XML:


<?xml version="1.0" encoding="UTF-8"?>
<out1>
<getEpfVersionReturn></getEpfVersionReturn>
<AL_ERROR_NUM>3</AL_ERROR_NUM>
<AL_ERROR_MSG>Error calling function &amp;lt;getEpfVersion&amp;gt;: &amp;lt;Web Services client unable to create a SOAP request to send to server.  Error: Connection has been shutdown: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmP</AL_ERROR_MSG>
</out1>

Edit1 It should be noted that our job server and web tier are on two different machines. BODS01DEV is the DEV job server, and in the DataServices.html file I placed http://boips01:8080/DataServices


nhohman (BOB member since 2008-11-19)

I am able to call the getEpfVersion function and get a response as 3.00.10 using webService Adapter

use the attached keystore file, make sure when you specify the keystore location in webService Adapter Datastore, you are setting the complete path with the file name (C:\temp\cacerts)

is 615565 support incident opened by you with SAP ?
cacerts.zip (14.0 KB)


manoj_d (BOB member since 2009-01-02)

Yes, that is my ticket on SAP. When I use the latest attached file, I get the below error. Not sure what else would be different between our two setups aside from our versions.

10808	2488	RUN-058110	8/4/2015 8:40:20 PM	|Data flow df_test_epf|Transform Query-Function1
10808	2488	RUN-058110	8/4/2015 8:40:20 PM	Error calling function <getEpfVersion>: <Web Services client unable to create a SOAP request to send to server.  Error:
10808	2488	RUN-058110	8/4/2015 8:40:20 PM	java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must
10808	2488	RUN-058110	8/4/2015 8:40:20 PM	be non-empty>.

Edit1 Attached error and setup of datastore and path to keystone.
error.pdf (90.0 KB)


nhohman (BOB member since 2008-11-19)

Update. Got the previous web service working.

However, got a new issue with new web service. Was hoping to see what needed to be done outside of trying to connect to this one:
https://service2.ultipro.com/services/BIDataService

I have saved off the certificate in several types of formats, but it’s not working. Tried both adapter and Web Service SOAP based methods.

Thanks!


nhohman (BOB member since 2008-11-19)

Note that this was resolved after using the correct export of the certificate from the remote web server. Thanks to manoj_d for his help!


nhohman (BOB member since 2008-11-19)

Can you tell me how you generated the attachment, please? The job recently started failing with the below error, and I’m not sure if their certificate expired. When I tried to download a new certificate using FireFox, each of them failed. As well, they’re all smaller in size wherein the one you sent me is 26KB (drastically larger). Thanks!


9968	8780	RUN-058110	11/3/2015 9:45:16 AM	|Data flow DF_NCOA_EPF_Get_Daily_Delete|Transform q_call_login-Function1
9968	8780	RUN-058110	11/3/2015 9:45:16 AM	Error calling function <login>: <Web Services client unable to create a SOAP request to send to server.  Error:
9968	8780	RUN-058110	11/3/2015 9:45:16 AM	sun.security.validator.ValidatorException: PKIX path building failed:
9968	8780	RUN-058110	11/3/2015 9:45:16 AM	sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target>.
9968	7444	RUN-058110	11/3/2015 9:45:17 AM	|Data flow DF_NCOA_EPF_Get_Daily_Delete|Transform q_call_list-Function2
9968	7444	RUN-058110	11/3/2015 9:45:17 AM	Error calling function <getList>: <Web Services client unable to create a SOAP request to send to server.  Error:
9968	7444	RUN-058110	11/3/2015 9:45:17 AM	sun.security.validator.ValidatorException: PKIX path building failed:
9968	7444	RUN-058110	11/3/2015 9:45:17 AM	sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target>.
9516	3540	RUN-058110	11/3/2015 9:45:30 AM	|Data flow DF_NCOA_EPF_Set_Status|Transform q_call_login-Function1
9516	3540	RUN-058110	11/3/2015 9:45:30 AM	Error calling function <login>: <Web Services client unable to create a SOAP request to send to server.  Error:
9516	3540	RUN-058110	11/3/2015 9:45:30 AM	sun.security.validator.ValidatorException: PKIX path building failed:
9516	3540	RUN-058110	11/3/2015 9:45:30 AM	sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target>.
9516	 308	RUN-058110	11/3/2015 9:45:31 AM	|Data flow DF_NCOA_EPF_Set_Status|Transform q_call_list-Function2
9516	 308	RUN-058110	11/3/2015 9:45:31 AM	Error calling function <getList>: <Web Services client unable to create a SOAP request to send to server.  Error:
9516	 308	RUN-058110	11/3/2015 9:45:31 AM	sun.security.validator.ValidatorException: PKIX path building failed:
9516	 308	RUN-058110	11/3/2015 9:45:31 AM	sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target>.

nhohman (BOB member since 2008-11-19)