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
      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
          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
            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
              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
                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
                  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
                    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
                      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
                        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
                          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
                            Sorry Fabio but i can't share the project details ....
                            • 11. Re: Having problem in passing the values in business service in OSB.
                              FabioDouek
                              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
                                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
                                  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
                                    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