Integration

Get Involved. Join the Conversation.

Topic

    senthilkumar ramasamy
    HCM Absence creation using REST api from OIC integraion
    Topic posted October 10, 2019 by senthilkumar ramasamyGreen Ribbon: 100+ Points, tagged Adapters, Integration, Orchestration, REST 
    77 Views, 9 Comments
    Title:
    HCM Absence creation using REST api from OIC integraion
    Content:

    Hi,

     

    I am trying to call HCM REST API absence creation in OIC integration(REST adapter) with below payload also tested in soap UI and working fine. While testing in OIC getting below error and how the payload is transferred to end point rest, In the rest adapter i am using json format schema.

     

    Error 405-- Method Not Allowed

    From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:

    10.4.6 405 Method Not Allowed

    Method Not Allowed

    The method specified in the Request-Line is not allowed for the resource identified by the Request-URI. The response MUST include an Allow header containing a list of valid methods for the requested resource.

     

    REST: POST method

    https://<host>/hcmRestApi/resources/11.13.18.05/absences

     

    Using payload:

     

    { "personNumber": "201047",

    "employer": "Test LLC",

    "absenceType": "Unpaid Leave",

    "startDate": "2019-10-14",

    "startTime": "08:00",

    "endDate": "2019-10-15",

    "endTime": "17:00",

    "startDateDuration": 1,

    "endDateDuration": 1,

    "absenceStatusCd": "SUBMITTED" }

     

    Thanks

    Senthil

    Version:
    Version: 19.3.3.0.0 (190924.1600.31521)

    Comment

     

    • Hemanth Lakkaraju

      This should be a GET call not POST.

    • senthilkumar ramasamy

      Hi Memanth,

      I am trying to insert absence through REST api POST method, should i pass the payload above format or query parameter in the end point url?

      • Hemanth Lakkaraju

        Insert is a POST call with body. Are you getting above error for OIC Rest endpoint or HCM Rest invocation? I believe it is for OIC rest endpoint and you MUST have configured the REST endpoint to use POST but opening the endpoint URL in browser (which is a GET) and this is showing the error.

        Try testing the OIC endpoint in postman/SoapUI with POST.

    • senthilkumar ramasamy

      Hi Hemanth,

      You mean while test created OIC interface REST service in browser, we should use GET?

      While testing in soap UI, POST method only used and working HCM rest api fine. In OIC also configured the same and getting end point response error like below while testing. Endpoint side URI is not given /absences in connection place and design time given. Tested interface in soap UI, input value is passing to end point level but  soap response is like below.

      {
         "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1",
         "title": "Internal Server Error",
         "detail": "Internal server error. Please contact oracle support for details.",
         "o:errorCode": "500",
         "o:errorDetails": [   {
            "type": "UnMappedFault:execute",
            "instance": "<![CDATA[Please inspect the logs for more details. Initiating Request: <request_payload>\n   <Body xmlns=\"http://schemas.xmlsoap.org/soap/envelope/\">\n      <execute xmlns=\"http://xmlns.oracle.com/cloud/adapter/REST/absencepost_REQUEST/types\">\n         <request-wrapper xmlns=\"http://xmlns.oracle.com/cloud/adapter/REST/absencepost/types\">\n            <personNumber>201047<\/personNumber>\n            <employer>Imdaad LLC<\/employer>\n            <absenceType>Unpaid Leave<\/absenceType>\n            <startDate>2019-10-28<\/startDate>\n            <startTime>08:00<\/startTime>\n            <endDate>2019-10-29<\/endDate>\n            <endTime>17:00<\/endTime>\n            <startDateDuration>1<\/startDateDuration>\n            <endDateDuration>1<\/endDateDuration>\n            <absenceStatusCd>SUBMITTED<\/absenceStatusCd>\n         <\/request-wrapper>\n         <HTTPHeaders/>\n      <\/execute>\n   <\/Body>\n<\/request_payload>\n]]>",
            "title": "Fault Details : \n<ns2:APIInvocationError xmlns:ns2=\"http://xmlns.oracle.com/cloud/generic/rest/fault/REST/hcmabsence\"><ns2:type/><ns2:title/><ns2:detail/><ns2:errorCode/><ns2:errorDetails><ns2:type>http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1<\/ns2:type><ns2:title>Bad Request<\/ns2:title><ns2:errorCode>400<\/ns2:errorCode><ns2:errorPath>&lt;![CDATA[POST https://ekkz-dev1.fa.em2.oraclecloud.com/hcmRestApi/resources/11.13.18.05/absences returned a response status of 400 Bad Request]]&gt;<\/ns2:errorPath><ns2:instance>&lt;![CDATA[Some dates in this absence overlap with another absence. (ANC-3405005).A 400 Bad Request Error indicates that the target service is unable (or refuses) to process the request sent by the client (Oracle Integration Cloud), due to an issue that is perceived by the server to be a client problem. You can trace the cURL representation of the request sent to the target service from the Oracle Integration Cloud server logs. Try invoking the target service using cURL. It may also be that one of the intermediaries (proxy, LBR) could be returning this code.  ]]&gt;<\/ns2:instance><\/ns2:errorDetails><\/ns2:APIInvocationError>\n:Application Error",
            "o:errorPath": "<![CDATA[<location>\n   <node>RouteNode1<\/node>\n   <path>response-pipeline<\/path>\n<\/location>\n]]>",
            "o:errorCode": "OSB-380001"
         }]
      }

       

      OIC Activity Stream: (https://<HOST>:443/ic/api/integration/v1/flows/rest/ABSENCE_POST/1.0/absences)

      -------------------------

       
      execute - Sun Oct 20 13:37:31 UTC 2019 - Request Received Successsfully..
      ----
       
      execute - Sun Oct 20 13:37:31 UTC 2019 - Request to Target Service..
       
      ----
      Request to Target Service - payload(pre-mapping)  Request:<execute xmlns="http://xmlns.oracle.com/cloud/adapter/REST/absencepost_REQUEST/types"><request-wrapper xmlns="http://xmlns.oracle.com/cloud/adapter/REST/absencepost/types"><personNumber>201047</personNumber><employer>Imdaad LLC</employer><absenceType>Unpaid Leave</absenceType><startDate>2019-10-28</startDate><startTime>08:00</startTime><endDate>2019-10-29</endDate><endTime>17:00</endTime><startDateDuration>1</startDateDuration><endDateDuration>1</endDateDuration><absenceStatusCd>SUBMITTED</absenceStatusCd></request-wrapper><HTTPHeaders/></execute>
      ----
       
      execute - Sun Oct 20 13:37:32 UTC 2019 - Request to Target Service..
       
      ----
      Request to Target Service - payload(post-mapping) <nstrgmpr:execute xmlns:ns2="http://xmlns.oracle.com/cloud/generic/rest/fault/REST/hcmabsence" xmlns:ns1="http://xmlns.oracle.com/cloud/adapter/REST/hcmabsence_REQUEST" xmlns:nstrgdfl="http://xmlns.oracle.com/cloud/adapter/REST/hcmabsence/types" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:nstrgmpr="http://xmlns.oracle.com/cloud/adapter/REST/hcmabsence_REQUEST/types" xmlns="http://schemas.xmlsoap.org/soap/envelope/"><nstrgdfl:request-wrapper><nstrgdfl:personNumber>201047</nstrgdfl:personNumber><nstrgdfl:employer>Imdaad LLC</nstrgdfl:employer><nstrgdfl:absenceType>Unpaid Leave</nstrgdfl:absenceType><nstrgdfl:startDate>2019-10-28</nstrgdfl:startDate><nstrgdfl:startTime>08:00</nstrgdfl:startTime><nstrgdfl:endDate>2019-10-29</nstrgdfl:endDate><nstrgdfl:endTime>17:00</nstrgdfl:endTime><nstrgdfl:startDateDuration>1</nstrgdfl:startDateDuration><nstrgdfl:endDateDuration>1</nstrgdfl:endDateDuration><nstrgdfl:absenceStatusCd>SUBMITTED</nstrgdfl:absenceStatusCd></nstrgdfl:request-wrapper></nstrgmpr:execute>
      hcmabsence - Sun Oct 20 13:37:35 UTC 2019 - Request: 'Call External REST API: Post /hcmRestApi/resources/11.13.18.05/absences/' failed in 2823 ms - JSON: /hcmRestApi/resources/11.13.18.05/absences/ - hcmabsence.
      execute - Sun Oct 20 13:37:35 UTC 2019 - Error Occured While Invoking Target Application..
      View payload
       
      Fault:<fault xmlns="http://www.bea.com/wli/sb/context"><errorCode>OSB-380001</errorCode><reason>Fault Details : &lt;ns2:APIInvocationError xmlns:ns2="http://xmlns.oracle.com/cloud/generic/rest/fault/REST/hcmabsence"&gt;&lt;ns2:type/&gt;&lt;ns2:title/&gt;&lt;ns2:detail/&gt;&lt;ns2:errorCode/&gt;&lt;ns2:errorDetails&gt;&lt;ns2:type&gt;http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1&lt;/ns2:type&gt;&lt;ns2:title&gt;Bad Request&lt;/ns2:title&gt;&lt;ns2:errorCode&gt;400&lt;/ns2:errorCode&gt;&lt;ns2:errorPath&gt;&amp;lt;![CDATA[POST https://<HOST>/hcmRestApi/resources/11.13.18.05/absences returned a response status of 400 Bad Request]]&amp;gt;&lt;/ns2:errorPath&gt;&lt;ns2:instance&gt;&amp;lt;![CDATA[Some dates in this absence overlap with another absence. (ANC-3405005).A 400 Bad Request Error indicates that the target service is unable (or refuses) to process the request sent by the client (Oracle Integration Cloud), due to an issue that is perceived by the server to be a client problem. You can trace the cURL representation of the request sent to the target service from the Oracle Integration Cloud server logs. Try invoking the target service using cURL. It may also be that one of the intermediaries (proxy, LBR) could be returning this code.  ]]&amp;gt;&lt;/ns2:instance&gt;&lt;/ns2:errorDetails&gt;&lt;/ns2:APIInvocationError&gt;</reason><location><node>RouteNode1</node><path>response-pipeline</path></location></fault> Response:<Fault xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://schemas.xmlsoap.org/soap/envelope/"><faultcode xmlns="">soap-env:Server</faultcode><faultstring xmlns="">Application Error</faultstring><detail xmlns=""><jca-runtime-fault-detail xmlns="http://www.bea.com/wli/sb/transports/jca"><eis-error-code>:APIInvocationError</eis-error-code><eis-error-message>Fault Details : &lt;ns2:APIInvocationError xmlns:ns2="http://xmlns.oracle.com/cloud/generic/rest/fault/REST/hcmabsence"&gt;&lt;ns2:type/&gt;&lt;ns2:title/&gt;&lt;ns2:detail/&gt;&lt;ns2:errorCode/&gt;&lt;ns2:errorDetails&gt;&lt;ns2:type&gt;http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1&lt;/ns2:type&gt;&lt;ns2:title&gt;Bad Request&lt;/ns2:title&gt;&lt;ns2:errorCode&gt;400&lt;/ns2:errorCode&gt;&lt;ns2:errorPath&gt;&amp;lt;![CDATA[POST https://<HOST>/hcmRestApi/resources/11.13.18.05/absences returned a response status of 400 Bad Request]]&amp;gt;&lt;/ns2:errorPath&gt;&lt;ns2:instance&gt;&amp;lt;![CDATA[Some dates in this absence overlap with another absence. (ANC-3405005).A 400 Bad Request Error indicates that the target service is unable (or refuses) to process the request sent by the client (Oracle Integration Cloud), due to an issue that is perceived by the server to be a client problem. You can trace the cURL representation of the request sent to the target service from the Oracle Integration Cloud server logs. Try invoking the target service using cURL. It may also be that one of the intermediaries (proxy, LBR) could be returning this code.  ]]&amp;gt;&lt;/ns2:instance&gt;&lt;/ns2:errorDetails&gt;&lt;/ns2:APIInvocationError&gt;</eis-error-message><exception>oracle.tip.adapter.sa.api.JCABindingException: Fault Details : &lt;ns2:APIInvocationError xmlns:ns2="http://xmlns.oracle.com/cloud/generic/rest/fault/REST/hcmabsence"&gt;&lt;ns2:type/&gt;&lt;ns2:title/&gt;&lt;ns2:detail/&gt;&lt;ns2:errorCode/&gt;&lt;ns2:errorDetails&gt;&lt;ns2:type&gt;http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1&lt;/ns2:type&gt;&lt;ns2:title&gt;Bad Request&lt;/ns2:title&gt;&lt;ns2:errorCode&gt;400&lt;/ns2:errorCode&gt;&lt;ns2:errorPath&gt;&amp;lt;![CDATA[POST https://<HOST>/hcmRestApi/resources/11.13.18.05/absences returned a response status of 400 Bad Request]]&amp;gt;&lt;/ns2:errorPath&gt;&lt;ns2:instance&gt;&amp;lt;![CDATA[Some dates in this absence overlap with another absence. (ANC-3405005).A 400 Bad Request Error indicates that the target service is unable (or refuses) to process the request sent by the client (Oracle Integration Cloud), due to an issue that is perceived by the server to be a client problem. You can trace the cURL representation of the request sent to the target service from the Oracle Integration Cloud server logs. Try invoking the target service using cURL. It may also be that one of the intermediaries (proxy, LBR) could be returning this code.  ]]&amp;gt;&lt;/ns2:instance&gt;&lt;/ns2:errorDetails&gt;&lt;/ns2:APIInvocationError&gt;; nested exception is: Fault Details : &lt;ns2:APIInvocationError xmlns:ns2="http://xmlns.oracle.com/cloud/generic/rest/fault/REST/hcmabsence"&gt;&lt;ns2:type/&gt;&lt;ns2:title/&gt;&lt;ns2:detail/&gt;&lt;ns2:errorCode/&gt;&lt;ns2:errorDetails&gt;&lt;ns2:type&gt;http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1&lt;/ns2:type&gt;&lt;ns2:title&gt;Bad Request&lt;/ns2:title&gt;&lt;ns2:errorCode&gt;400&lt;/ns2:errorCode&gt;&lt;ns2:errorPath&gt;&amp;lt;![CDATA[POST https://<HOST>/hcmRestApi/resources/11.13.18.05/absences returned a response status of 400 Bad Request]]&amp;gt;&lt;/ns2:errorPath&gt;&lt;ns2:instance&gt;&amp;lt;![CDATA[Some dates in this absence overlap with another absence. (ANC-3405005).A 400 Bad Request Error indicates that the target service is unable (or refuses) to process the request sent by the client (Oracle Integration Cloud), due to an issue that is perceived by the server to be a client problem. You can trace the cURL representation of the request sent to the target service from the Oracle Integration Cloud server logs. Try invoking the target service using cURL. It may also be that one of the intermediaries (proxy, LBR) could be returning this code.  ]]&amp;gt;&lt;/ns2:instance&gt;&lt;/ns2:errorDetails&gt;&lt;/ns2:APIInvocationError&gt; at oracle.tip.adapter.sa.impl.JCABindingReferenceImpl.request(JCABindingReferenceImpl.java:364) at com.bea.wli.sb.transports.jca.binding.JCATransportOutboundOperationBindingServiceImpl.invoke(JCATransportOutboundOperationBindingServiceImpl.java:218) at com.bea.wli.sb.transports.jca.JCATransportEndpoint.sendRequestResponse(JCATransportEndpoint.java:329) at com.bea.wli.sb.transports.jca.JCATransportEndpoint.access$100(JCATransportEndpoint.java:39) at com.bea.wli.sb.transports.jca.JCATransportEndpoint$1.run(JCATransportEndpoint.java:481) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:370) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:163) at weblogic.security.Security.runAs(Security.java:62) at com.bea.wli.sb.util.security.SecurityUtils.executeAs(SecurityUtils.java:70) at com.bea.wli.sb.transports.jca.JCATransportEndpoint.send(JCATransportEndpoint.java:277) at com.bea.wli.sb.transports.jca.JCATransportProvider.sendMessageAsync(JCATransportProvider.java:636) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.bea.wli.sb.transports.Util$1.invoke(Util.java:80) at com.sun.proxy.$Proxy248.sendMessageAsync(Unknown Source) at com.bea.wli.sb.transports.TransportManagerImpl.sendMessageToService(TransportManagerImpl.java:498) at com.bea.wli.sb.transports.TransportManagerImpl.sendMessageAsync(TransportManagerImpl.java:386) at com.bea.wli.sb.service.handlerchain.handlers.TransportProviderInvoker.dispatch(TransportProviderInvoker.java:87) at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:129) at com.bea.wli.sb.service.handlerchain.handlers.EndpointManagementHandler.dispatch(EndpointManagementHandler.java:47) at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:129) at com.bea.wli.sb.service.handlerchain.handlers.UpdateOutboundStatistics.dispatch(UpdateOutboundStatistics.java:65) at com.bea.wli.sb.service.handlerchain.handlers.LoadBalanceFailover$LoadBalanceFailoverHelper.sendMessageAsync(LoadBalanceFailover.java:408) at com.bea.wli.sb.service.handlerchain.handlers.LoadBalanceFailover$LoadBalanceFailoverHelper.sendMessageToServiceAsync(LoadBalanceFailover.java:333) at com.bea.wli.sb.service.handlerchain.handlers.LoadBalanceFailover$LoadBalanceFailoverHelper.sendMessageToService(LoadBalanceFailover.java:280) at com.bea.wli.sb.service.handlerchain.handlers.LoadBalanceFailover.dispatch(LoadBalanceFailover.java:162) at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:129) at com.bea.wli.sb.service.handlerchain.handlers.OutboundMessageContentHandler.dispatch(OutboundMessageContentHandler.java:70) at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:129) at com.bea.wli.sb.service.handlerchain.handlers.CheckTxDeadlock.dispatch(CheckTxDeadlock.java:54) at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:129) at com.bea.wli.sb.service.handlerchain.handlers.ResultCachingHandler.dispatch(ResultCachingHandler.java:113) at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:129) at com.bea.wli.sb.service.handlerchain.handlers.SetSoapAction.dispatch(SetSoapAction.java:167) at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:129) at com.bea.wli.sb.service.handlerchain.handlers.OutboundMessagePatternHandler.dispatch(OutboundMessagePatternHandler.java:174) at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:129) at com.bea.wli.sb.service.handlerchain.DefaultOutboundHandlerChain.dispatch(DefaultOutboundHandlerChain.java:114) at com.bea.wli.sb.service.dispatcher.TransportDispatcher.dispatch(TransportDispatcher.java:58) at com.bea.wli.sb.context.PipelineDispatcherClient.dispatch(PipelineDispatcherClient.java:216) at com.bea.wli.sb.pipeline.PipelineContextImpl.doDispatch(PipelineContextImpl.java:518) at com.bea.wli.sb.pipeline.PipelineContextImpl.dispatch(PipelineContextImpl.java:494) at stages.routing.runtime.RouteRuntimeStep.processMessage(RouteRuntimeStep.java:186) at com.bea.wli.sb.stages.StageMetadataImpl$WrapperRuntimeStep.processMessage(StageMetadataImpl.java:384) at com.bea.wli.sb.pipeline.components.RouteNode.doRequest(RouteNode.java:137) at com.bea.wli.sb.pipeline.components.Node.processMessage(Node.java:82) at com.bea.wli.sb.pipeline.PipelineContextImpl.execute(PipelineContextImpl.java:910) at com.bea.wli.sb.pipeline.components.Router.processMessage(Router.java:209) at com.bea.wli.sb.pipeline.MessageProcessor.processRequest(MessageProcessor.java:89) at com.bea.wli.sb.pipeline.dispatcher.PipelineDispatcher$1.run(PipelineDispatcher.java:143) at com.bea.wli.sb.pipeline.dispatcher.PipelineDispatcher$1.run(PipelineDispatcher.java:139) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:370) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:163) at com.bea.wli.sb.util.security.SecurityUtils.executeAs(SecurityUtils.java:102) at com.bea.wli.sb.security.WLSSecurityContextService.executeAs(WLSSecurityContextService.java:55) at com.bea.wli.sb.pipeline.dispatcher.PipelineDispatcher.dispatch(PipelineDispatcher.java:137) at com.bea.wli.sb.service.handlerchain.handlers.ServiceInvoker.dispatch(ServiceInvoker.java:156) at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:129) at com.bea.wli.sb.service.handlerchain.handlers.UpdateInboundOperationalStatistics.dispatch(UpdateInboundOperationalStatistics.java:75) at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:129) at com.bea.wli.sb.service.handlerchain.handlers.ComputeOperation.dispatch(ComputeOperation.java:110) at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:129) at com.bea.wli.sb.service.handlerchain.handlers.InboundMessageContentHandler.dispatch(InboundMessageContentHandler.java:170) at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:129) at com.bea.wli.sb.service.handlerchain.handlers.CheckAccessControl.dispatch(CheckAccessControl.java:73) at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:129) at com.bea.wli.sb.service.handlerchain.handlers.UpdateInboundTransportStatistics.dispatch(UpdateInboundTransportStatistics.java:64) at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:129) at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:129) at com.bea.wli.sb.service.handlerchain.handlers.DefaultInboundErrorHandler.dispatch(DefaultInboundErrorHandler.java:44) at com.bea.wli.sb.service.handlerchain.DefaultInboundHandlerChain.dispatch(DefaultInboundHandlerChain.java:135) at com.bea.wli.sb.transports.TransportDispatcherClient.dispatch(TransportDispatcherClient.java:96) at com.bea.wli.sb.transports.TransportManagerImpl.receiveMessage(TransportManagerImpl.java:337) at com.bea.wli.sb.transports.jca.binding.JCATransportInboundOperationBindingServiceImpl.sendMessage(JCATransportInboundOperationBindingServiceImpl.java:517) at com.bea.wli.sb.transports.jca.binding.JCATransportInboundOperationBindingServiceImpl.invoke(JCATransportInboundOperationBindingServiceImpl.java:239) at com.bea.wli.sb.transports.jca.binding.JCAInboundRequestListener.request(JCAInboundRequestListener.java:53) at oracle.tip.adapter.sa.impl.inbound.JCAInboundListenerImpl.onMessage(JCAInboundListenerImpl.java:285) at oracle.tip.adapter.fw.jca.messageinflow.MessageEndpointImpl.onMessage(MessageEndpointImpl.java:683) at oracle.cloud.connector.impl.CloudEndpointImpl.raiseEvent(CloudEndpointImpl.java:100) at oracle.cloud.connector.rest.RestAdapterMessageReceiver.onMessage(RestAdapterMessageReceiver.java:204) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at oracle.cloud.adapter.common.CloudAdapterLocator$LocatorProxy.invoke(CloudAdapterLocator.java:204) at com.sun.proxy.$Proxy932.onMessage(Unknown Source) at oracle.cloud.connector.impl.soap.BaseTransportServlet.dispatchInboundMessage(BaseTransportServlet.java:363) at oracle.cloud.connector.impl.rest.RESTTransportServlet.processRequest(RESTTransportServlet.java:337) at oracle.cloud.connector.impl.rest.RESTTransportServlet.service(RESTTransportServlet.java:186) at weblogic.servlet.FutureResponseServlet.service(FutureResponseServlet.java:24) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78) at oracle.wsm.agent.handler.servlet.SecurityFilter$3.run(SecurityFilter.java:503) at java.security.AccessController.doPrivileged(Native Method) at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315) at oracle.security.jps.internal.jaas.AccActionExecutor.execute(AccActionExecutor.java:70) at oracle.security.jps.internal.jaas.AbstractSubjectSecurity$ActionExecutorWrapper.execute(AbstractSubjectSecurity.java:282) at oracle.security.jps.internal.jaas.CascadeActionExecutor$SubjectPrivilegedExceptionAction.run(CascadeActionExecutor.java:82) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:370) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:163) at weblogic.security.Security.runAs(Security.java:62) at oracle.security.jps.wls.jaas.WlsActionExecutor.execute(WlsActionExecutor.java:50) at oracle.security.jps.internal.jaas.CascadeActionExecutor.execute(CascadeActionExecutor.java:55) at oracle.security.jps.internal.jaas.AbstractSubjectSecurity$ActionExecutorWrapper.execute(AbstractSubjectSecurity.java:282) at oracle.security.jps.internal.jaas.AbstractSubjectSecurity.executeAs(AbstractSubjectSecurity.java:236) at oracle.wsm.agent.handler.servlet.SecurityFilter.processRequest(SecurityFilter.java:498) at oracle.wsm.agent.handler.servlet.SecurityFilter.doFilter(SecurityFilter.java:327) at oracle.cloud.connector.impl.rest.security.RestSecurityFilter.doFilter(RestSecurityFilter.java:92) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78) at oracle.cloud.connector.impl.filter.bodylength.RequestBodyLengthLimitFilter.handleNonChunkedTransfer(RequestBodyLengthLimitFilter.java:123) at oracle.cloud.connector.impl.filter.bodylength.RequestBodyLengthLimitFilter.doFilter(RequestBodyLengthLimitFilter.java:75) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78) at weblogic.security.internal.IDCSSessionSynchronizationFilter.doFilter(IDCSSessionSynchronizationFilter.java:89) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3688) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3654) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:328) at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197) at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203) at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71) at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2433) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2281) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2259) at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1692) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1652) at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:272) at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348) at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333) at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54) at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41) at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:640) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:406) at weblogic.work.ExecuteThread.run(ExecuteThread.java:346)Caused by: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: Fault Details : &lt;ns2:APIInvocationError xmlns:ns2="http://xmlns.oracle.com/cloud/generic/rest/fault/REST/hcmabsence"&gt;&lt;ns2:type/&gt;&lt;ns2:title/&gt;&lt;ns2:detail/&gt;&lt;ns2:errorCode/&gt;&lt;ns2:errorDetails&gt;&lt;ns2:type&gt;http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1&lt;/ns2:type&gt;&lt;ns2:title&gt;Bad Request&lt;/ns2:title&gt;&lt;ns2:errorCode&gt;400&lt;/ns2:errorCode&gt;&lt;ns2:errorPath&gt;&amp;lt;![CDATA[POST https://<HOST>/hcmRestApi/resources/11.13.18.05/absences returned a response status of 400 Bad Request]]&amp;gt;&lt;/ns2:errorPath&gt;&lt;ns2:instance&gt;&amp;lt;![CDATA[Some dates in this absence overlap with another absence. (ANC-3405005).A 400 Bad Request Error indicates that the target service is unable (or refuses) to process the request sent by the client (Oracle Integration Cloud), due to an issue that is perceived by the server to be a client problem. You can trace the cURL representation of the request sent to the target service from the Oracle Integration Cloud server logs. Try invoking the target service using cURL. It may also be that one of the intermediaries (proxy, LBR) could be returning this code.  ]]&amp;gt;&lt;/ns2:instance&gt;&lt;/ns2:errorDetails&gt;&lt;/ns2:APIInvocationError&gt;; nested exception is: Fault Details : &lt;ns2:APIInvocationError xmlns:ns2="http://xmlns.oracle.com/cloud/generic/rest/fault/REST/hcmabsence"&gt;&lt;ns2:type/&gt;&lt;ns2:title/&gt;&lt;ns2:detail/&gt;&lt;ns2:errorCode/&gt;&lt;ns2:errorDetails&gt;&lt;ns2:type&gt;http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1&lt;/ns2:type&gt;&lt;ns2:title&gt;Bad Request&lt;/ns2:title&gt;&lt;ns2:errorCode&gt;400&lt;/ns2:errorCode&gt;&lt;ns2:errorPath&gt;&amp;lt;![CDATA[POST https://<HOST>/hcmRestApi/resources/11.13.18.05/absences returned a response status of 400 Bad Request]]&amp;gt;&lt;/ns2:errorPath&gt;&lt;ns2:instance&gt;&amp;lt;![CDATA[Some dates in this absence overlap with another absence. (ANC-3405005).A 400 Bad Request Error indicates that the target service is unable (or refuses) to process the request sent by the client (Oracle Integration Cloud), due to an issue that is perceived by the server to be a client problem. You can trace the cURL representation of the request sent to the target service from the Oracle Integration Cloud server logs. Try invoking the target service using cURL. It may also be that one of the intermediaries (proxy, LBR) could be returning this code.  ]]&amp;gt;&lt;/ns2:instance&gt;&lt;/ns2:errorDetails&gt;&lt;/ns2:APIInvocationError&gt; at oracle.tip.adapter.sa.impl.fw.wsif.jca.WSIFOperation_JCA.performOperation(WSIFOperation_JCA.java:872) at oracle.tip.adapter.sa.impl.fw.wsif.jca.WSIFOperation_JCA.executeOperation(WSIFOperation_JCA.java:416) at oracle.tip.adapter.sa.impl.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.java:396) at oracle.tip.adapter.sa.impl.JCABindingReferenceImpl.invokeWsifProvider(JCABindingReferenceImpl.java:465) at oracle.tip.adapter.sa.impl.JCABindingReferenceImpl.request(JCABindingReferenceImpl.java:361) ... 139 moreCaused by: Fault Details : &lt;ns2:APIInvocationError xmlns:ns2="http://xmlns.oracle.com/cloud/generic/rest/fault/REST/hcmabsence"&gt;&lt;ns2:type/&gt;&lt;ns2:title/&gt;&lt;ns2:detail/&gt;&lt;ns2:errorCode/&gt;&lt;ns2:errorDetails&gt;&lt;ns2:type&gt;http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1&lt;/ns2:type&gt;&lt;ns2:title&gt;Bad Request&lt;/ns2:title&gt;&lt;ns2:errorCode&gt;400&lt;/ns2:errorCode&gt;&lt;ns2:errorPath&gt;&amp;lt;![CDATA[POST https://<HOST>/hcmRestApi/resources/11.13.18.05/absences returned a response status of 400 Bad Request]]&amp;gt;&lt;/ns2:errorPath&gt;&lt;ns2:instance&gt;&amp;lt;![CDATA[Some dates in this absence overlap with another absence. (ANC-3405005).A 400 Bad Request Error indicates that the target service is unable (or refuses) to process the request sent by the client (Oracle Integration Cloud), due to an issue that is perceived by the server to be a client problem. You can trace the cURL representation of the request sent to the target service from the Oracle Integration Cloud server logs. Try invoking the target service using cURL. It may also be that one of the intermediaries (proxy, LBR) could be returning this code.  ]]&amp;gt;&lt;/ns2:instance&gt;&lt;/ns2:errorDetails&gt;&lt;/ns2:APIInvocationError&gt; at oracle.tip.adapter.cloud.CloudAdapterInteraction.execute(CloudAdapterInteraction.java:203) at oracle.tip.adapter.sa.impl.fw.wsif.jca.WSIFOperation_JCA.performOperation(WSIFOperation_JCA.java:684) ... 143 moreCaused by: oracle.cloud.connector.api.RemoteApplicationException: Fault Details : &lt;ns2:APIInvocationError xmlns:ns2="http://xmlns.oracle.com/cloud/generic/rest/fault/REST/hcmabsence"&gt;&lt;ns2:type/&gt;&lt;ns2:title/&gt;&lt;ns2:detail/&gt;&lt;ns2:errorCode/&gt;&lt;ns2:errorDetails&gt;&lt;ns2:type&gt;http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1&lt;/ns2:type&gt;&lt;ns2:title&gt;Bad Request&lt;/ns2:title&gt;&lt;ns2:errorCode&gt;400&lt;/ns2:errorCode&gt;&lt;ns2:errorPath&gt;&amp;lt;![CDATA[POST https://<HOST>/hcmRestApi/resources/11.13.18.05/absences returned a response status of 400 Bad Request]]&amp;gt;&lt;/ns2:errorPath&gt;&lt;ns2:instance&gt;&amp;lt;![CDATA[Some dates in this absence overlap with another absence. (ANC-3405005).A 400 Bad Request Error indicates that the target service is unable (or refuses) to process the request sent by the client (Oracle Integration Cloud), due to an issue that is perceived by the server to be a client problem. You can trace the cURL representation of the request sent to the target service from the Oracle Integration Cloud server logs. Try invoking the target service using cURL. It may also be that one of the intermediaries (proxy, LBR) could be returning this code.  ]]&amp;gt;&lt;/ns2:instance&gt;&lt;/ns2:errorDetails&gt;&lt;/ns2:APIInvocationError&gt; at oracle.cloud.connector.impl.RESTFaultGenerator.errorResponseException(RESTFaultGenerator.java:216) at oracle.cloud.connector.impl.RESTEndpoint.handleHttpResponse(RESTEndpoint.java:966) at oracle.cloud.connector.impl.RESTEndpoint.createResponseMessage(RESTEndpoint.java:721) at oracle.cloud.connector.impl.RESTEndpoint.invoke(RESTEndpoint.java:230) at oracle.cloud.connector.impl.LoggingAwareRESTEndpoint.invoke(LoggingAwareRESTEndpoint.java:58) at oracle.cloud.connector.impl.CloudOperationImpl.invoke(CloudOperationImpl.java:121) at oracle.tip.adapter.cloud.CloudAdapterInteraction.sendMessageToCloudProvider(CloudAdapterInteraction.java:449) at oracle.tip.adapter.cloud.CloudAdapterInteraction.execute(CloudAdapterInteraction.java:172) ... 144 more</exception></jca-runtime-fault-detail></detail></Fault>

      Please help to resolve the error.

      Thanks

      Senthil

       

       

       

       

      • Hemanth Lakkaraju

        The error (Bad Request) suggests there is something wrong in the payload/headers being passed. This is completely different error to what was initially posted. Did you check with same payload in SoapUI/Postman if it is working?

    • senthilkumar ramasamy

      Hi Hemanth,

      Initially used review variable now using request payload. I have used JSON payload tested in SOAP UI and same configured in the request payload(JSON format as above beginning) and run time input value is passing to end point REST but there only getting error like above. Where to change in my interface and should i configure request header in the OIC side or REST api side?

      Thanks 

      Senthil

      • Hemanth Lakkaraju

        You need to provide information in screenshots/document to understand the difference where it is working and not working. It will be difficult to suggest anything without looking at actual API and your existing implementation and the location/reason of the error you get.

    • senthilkumar ramasamy

      Hi Hemanth,

      Identified the issue, some payload input data is overlaped. Now the OIC interface is working fine with same payload and absence date is not accepted due to already have leave applied the same date. REST service validation thrown below message. Thanks for your timely support :-).

       

      CDATA[Some dates in this absence overlap with another absence. (ANC-3405005).A 400 Bad Request Error indicates that the target service is unable (or refuses) to process the request sent by the client (Oracle Integration Cloud), due to an issue that is perceived by the server to be a client problem. You can trace the cURL representation of the request sent to the target service from the Oracle Integration Cloud server logs. Try invoking the target service using cURL. It may also be that one of the intermediaries (proxy, LBR) could be returning this code. 

      Thanks

      Senthil

    • senthilkumar ramasamy

      Hi Hemanth,

      My interface Input data is coming from data base polling and source schema is created like collection but, target payload is simple json format. How to map with collection. Should i use for-each or repeat element here, please advise.

       

      Thanks

      Senthil