This discussion is archived
1 2 Previous Next 18 Replies Latest reply: Mar 15, 2013 7:38 AM by FabioDouek RSS

Having problem in passing the values in business service in OSB.

993440 Newbie
Currently Being Moderated
hi ,

in my requirement i have to write a string in AQ , i have created a AQ adapter and a business service related to that now i have a variable which contains the string i have to pass, how i can paas this variable in my business service using service callout or publish ??

Edited by: 990437 on Mar 6, 2013 1:36 AM
  • 1. Re: Having problem in passing the values in business service in OSB.
    Durga Charan Explorer
    Currently Being Moderated
    To pass the value in Business Service , choose service callout (sync operation) or publish (async , one way) action in Proxy message flow. Then in request actions edit the body context variable using replace (node contents) with the AQ payload (BS payload). Assign the variable where required in payload.

    Cheers,
    Durga


    Please remember to mark appropriate posts as correct/helpful. For the long run, it will benefit us all.
  • 2. Re: Having problem in passing the values in business service in OSB.
    FabioDouek Journeyer
    Currently Being Moderated
    I believe your adapter is one-way. In this case you will use the publish action.
    I suggest you to create an XQuery to do the transformation, then assign it to $body.
    You should be able to do this easily from Eclipse, mapping to the WSDL defined for you adapter.

    Before integrating in your Proxy Service, execute the Business service from the OSB console in order to make sure that you have configured everything correctly.

    Regards,
    Fabio Douek.
  • 3. Re: Having problem in passing the values in business service in OSB.
    993440 Newbie
    Currently Being Moderated
    I already check the business service its working fine.
    and yes adapter is one way and i hve to use publish action but when i assign my paylod to the body then it doesn't write to the AQ(i checked the DB).
  • 4. Re: Having problem in passing the values in business service in OSB.
    FabioDouek Journeyer
    Currently Being Moderated
    I presume that you checked that when invoking the business service on its own the message is inserted into the DB.
    When invoking from the Proxy service, don't forget to set the Quality of Service to exactly once. See if an exception will be returned this time.

    Regards,
    Fabio Douek.
  • 5. Re: Having problem in passing the values in business service in OSB.
    991448 Journeyer
    Currently Being Moderated
    Test the Business Service as a standalone component first, if this works and you see a message in DB then you go ahead and test it from Proxy Service.
    You cannot use a service callout here as this is a one way adapter.You can use publish or route node.
    If you are using publish then put a log node fopr logging body in the publish pipeline .
    Pass the same message to the proxy service that you passed to Business Service and see of that message reaches DB. If not then add a routing option in the publish pipline and see what is the error.
  • 6. Re: Having problem in passing the values in business service in OSB.
    993440 Newbie
    Currently Being Moderated
    Set the Quality of Service to exactly once it doesn't show any exception in log and the message is not inserted in DB.

    Now i am using service callout i changed the WSDL and add output to make it two way process now i can invoke operation from service callout but it causes an exception -

    <Exception on TransportManagerImpl.sendMessageAsync: unchecked exception:, java.lang.NullPointerException
    java.lang.NullPointerException
    at com.bea.wli.sb.transports.jca.codec.JCAAbstractMessage.getPart(JCAAbstractMessage.java:75)
    at com.bea.wli.sb.transports.jca.codec.JCAAbstractMessage.getPart(JCAAbstractMessage.java:31)
    at com.bea.alsb.ws.codec.internal.runtime.soap.SoapDocCodec.marshallBody(SoapDocCodec.java:67)
    at com.bea.alsb.ws.codec.internal.runtime.soap.SoapCodec.marshall(SoapCodec.java:192)
    at com.bea.alsb.ws.codec.internal.runtime.soap.SoapDocClientCodec.marshall(SoapDocClientCodec.java:58)
    at com.bea.wli.sb.transports.jca.codec.JCAClientCodec.createResponse(JCAClientCodec.java:57)
    at com.bea.wli.sb.transports.jca.binding.JCATransportOutboundOperationBindingServiceImpl.invoke(JCATransportOutboundOperationBindingServiceImpl.java:168)
    at com.bea.wli.sb.transports.jca.JCATransportEndpoint.sendRequestResponse(JCATransportEndpoint.java:209)
    at com.bea.wli.sb.transports.jca.JCATransportEndpoint.send(JCATransportEndpoint.java:170)
    at com.bea.wli.sb.transports.jca.JCATransportProvider.sendMessageAsync(JCATransportProvider.java:574)
    at sun.reflect.GeneratedMethodAccessor563.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)

    can anyone tell me why this error is occuring ??
  • 7. Re: Having problem in passing the values in business service in OSB.
    FabioDouek Journeyer
    Currently Being Moderated
    Before going down this path (of changing to Service Callout), you mentioned earlier: "I already check the business service its working fine.". Does this mean that you executed the Business service and you saw the message in the DB table?

    Are you sure that there isn't any other Proxy Service or external process consuming the messages from the queue?
    How are you replacing the body variable? Do you have an XQuery to do it? Have you compared if the result of the transformation is the same as the input you are using when invoking the Business Service on its own and "it works fine"?

    Regards,
    Fabio Douek
  • 8. Re: Having problem in passing the values in business service in OSB.
    993440 Newbie
    Currently Being Moderated
    I checked the Business Service using the test console . It worked fine .

    There is no listener on the AQ . The test messages and the messages sent using the service callout are still there.

    I have logged the body variable and I can see its fine.

    The thing is Service Callout works but at the end throws an error :

    <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <0000Jp3_I_3ATOELn6k3yZ1HE3Q8000002> <1362640884743> <BEA-000000> <Started Payload Translation...>
    <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <0000Jp3_I_3ATOELn6k3yZ1HE3Q8000002> <1362640884744> <BEA-000000> <End of Payload Translation...>
    <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <0000Jp3_I_3ATOELn6k3yZ1HE3Q8000002> <1362640884744> <BEA-000000> <Extracting Header Properties from XMLRecord...>
    <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <0000Jp3_I_3ATOELn6k3yZ1HE3Q8000002> <1362640884744> <BEA-000000> <No recipients specified...>
    <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <0000Jp3_I_3ATOELn6k3yZ1HE3Q8000002> <1362640884746> <BEA-000000> <Successfully completed outbound interaction to queue - JOB_QUEUE>
    <[ACTIVE]ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <0000Jp3_I_3ATOELn6k3yZ1HE3Q8000002> <1362640884750> <BEA-000000> <Closing Interaction...>
    <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <0000Jp3_I_3ATOELn6k3yZ1HE3Q8000002> <1362640884750> <BEA-000000> <Closing Interaction...>
    <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-01FF0221C1FA5B53DDE4> <0000Jp3_I_3ATOELn6k3yZ1HE3Q8000002> <1362640884751> <BEA-380003> <Exception on TransportManagerImpl.sendMessageAsync: unchecked exception:, java.lang.NullPointerException
    java.lang.NullPointerException
    at com.bea.wli.sb.transports.jca.codec.JCAAbstractMessage.getPart(JCAAbstractMessage.java:75)
    at com.bea.wli.sb.transports.jca.codec.JCAAbstractMessage.getPart(JCAAbstractMessage.java:31)
    at com.bea.alsb.ws.codec.internal.runtime.soap.SoapDocCodec.marshallBody(SoapDocCodec.java:67)
    at com.bea.alsb.ws.codec.internal.runtime.soap.SoapCodec.marshall(SoapCodec.java:192)
    at com.bea.alsb.ws.codec.internal.runtime.soap.SoapDocClientCodec.marshall(SoapDocClientCodec.java:58)
    at com.bea.wli.sb.transports.jca.codec.JCAClientCodec.createResponse(JCAClientCodec.java:57)
    at com.bea.wli.sb.transports.jca.binding.JCATransportOutboundOperationBindingServiceImpl.invoke(JCATransportOutboundOperationBindingServiceImpl.java:168)
    at com.bea.wli.sb.transports.jca.JCATransportEndpoint.sendRequestResponse(JCATransportEndpoint.java:209)
    at com.bea.wli.sb.transports.jca.JCATransportEndpoint.send(JCATransportEndpoint.java:170)
    at com.bea.wli.sb.transports.jca.JCATransportProvider.sendMessageAsync(JCATransportProvider.java:574)
    at sun.reflect.GeneratedMethodAccessor563.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)......................................

    On the other hand the Publish Action with either QoS mode does nothing . No exception , No messages in the AQ . It does not do anything at all.
  • 9. Re: Having problem in passing the values in business service in OSB.
    FabioDouek Journeyer
    Currently Being Moderated
    If you want to send to me the project or the part of it to my email, I can fix it for you.
    Please send me the one which is One-way. This is the right way to go.

    fdouek@gmail.com

    Regards,
    Fabio Douek.
  • 10. Re: Having problem in passing the values in business service in OSB.
    993440 Newbie
    Currently Being Moderated
    Sorry Fabio but i can't share the project details ....
  • 11. Re: Having problem in passing the values in business service in OSB.
    FabioDouek Journeyer
    Currently Being Moderated
    No problem. If you want to create a dummy reproducer, feel free.

    Regards,
    Fabio Douek.
  • 12. Re: Having problem in passing the values in business service in OSB.
    993440 Newbie
    Currently Being Moderated
    Hi,

    this is the error i am getting when i use publish action.

    <con:errorCode>BEA-381975</con:errorCode>
    <con:reason>An error occured while transforming the payload: com.bea.wli.sb.so
    com.bea.wli.sb.sources.TransformException: Failed transforming to a DOMResult
    at com.bea.wli.sb.sources.DOMTransformer.getDOMSource(DOMTransformer.jav
    at com.bea.wli.sb.sources.DOMTransformer.transform(DOMTransformer.java:1
    at com.bea.wli.sb.sources.MetaTransformer.doTransform(MetaTransformer.ja
    at com.bea.wli.sb.sources.MetaTransformer.transform(MetaTransformer.java
    at com.bea.wli.sb.transports.jca.codec.JCAAbstractCodec.getElement(JCAAb
    at com.bea.wli.sb.transports.jca.codec.JCAAbstractCodec.getConcreteMessa
    at com.bea.wli.sb.transports.jca.codec.JCAClientCodec.createRequest(JCAC
    at com.bea.wli.sb.transports.jca.binding.JCATransportOutboundOperationBi
    at com.bea.wli.sb.transports.jca.JCATransportEndpoint.sendOneWay(JCATran
    at com.bea.wli.sb.transports.jca.JCATransportEndpoint.send(JCATransportE
    at com.bea.wli.sb.transports.jca.JCATransportProvider.sendMessageAsync(J
    at sun.reflect.GeneratedMethodAccessor1083.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    at java.lang.reflect.Method.invoke(Method.java:601)
  • 13. Re: Having problem in passing the values in business service in OSB.
    FabioDouek Journeyer
    Currently Being Moderated
    Hi,

    According to your previous post:
    1) You are able to invoke the business service successfully from the OSB console, and the message was being inserted in the DB
    2) When invoking the business service from the proxy service using a publish action, even with QOS=Exactly-Once, no error was being thrown, but the message was not being put into the queue

    Now you are saying that you are getting that exception.
    Did you compare the result of the transformation in the OSB console with the payload when you provide for the business service?
    That's the only thing I can recommend, as I have no visibility of what you are doing and the payload after transformation.

    Regards,
    Fabio Douek
  • 14. Re: Having problem in passing the values in business service in OSB.
    vladodias Guru
    Currently Being Moderated
    Hard to understand what's going on there... I tend to think that you have the adapter configured to receive a xml message while in fact the content that you passing is not xml...
1 2 Previous Next

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points