5 Replies Latest reply on Dec 21, 2010 8:42 AM by beve

    Passing messages between services within action class

    tmarks

      I have an ESB service that exposes a SOAP endpoint.

      Within this service's action chain, the message contains the SOAP envelope...except within the web service endpoint action class.

       

      Since I needed to strip the SOAP envelope and know nothing of XSLT, I decided to send the message from my web service endpoint action class to another internal service for processing.What is the recommend way to pass messages from within an action cklass to another internal services? (i.e. is there a better approach than using ServiceInvoker). Any recommendations?

       

      Also, the 'processing' service queue is exposed to the outside world. How do I make it 'private' (i.e. for use only by other internal services).

       

      Using jboss-eap-4.3 with jbossesb-4.8. 

        • 1. Re: Passing messages between services within action class
          beve

          Hi,

          What is the recommend way to pass messages from within an action cklass to another internal services? (i.e. is there a better approach than using ServiceInvoker). Any recommendations?

          You can take a look at the StaticRouter action which you could use. For an example, take a look at the static_router quickstart.

           

          Regards,

           

          /Daniel

          • 2. Re: Passing messages between services within action class
            tmarks

            I hope it was clear that I was looking to forward the message to another service within an action class...not within the action chain.

            I tried to implement a StaticReouter from my action class and kept running into this exception.

            java.lang.NullPointerException
                    at org.jboss.soa.esb.actions.StaticWiretap.process(StaticWiretap.java:58)

             

            Does anyone have sample code that shows how to create a StaticRouter from within an action class?

            • 3. Re: Passing messages between services within action class
              beve
              I hope it was clear that I was looking to forward the message to another service within an action class...not within the action chain.

              Sorry, I read your post a little to quickly and you were clear about that you wanted to use the ServiceInvoker from within an action class.

              So for this you can simply use the ServiceInvoker,

              A lot of the quickstarts use the ServiceInvoker class to send messages to services, for example the custom_action quickstarts SendEsbMessage class.

               

              Regards,

               

              /Daniel

              • 4. Re: Passing messages between services within action class
                tmarks

                When deploying my service (which includes ServiceInvoker), I periodically see this error.

                Found missing class in jbossts-common.jar. Added it to my compile classpath...but problem still occurs.

                Any suggestions?

                 

                org.jboss.soa.esb.FatalError: com.arjuna.common.util.exceptions.LoadPropertiesException: Failed to instantiate plugin: java.lang.ClassNotFoundException: com.arjuna.common.internal.util.propertyservice.plugins.io.XMLFilePlugin

                        at org.jboss.soa.esb.common.ModulePropertyManager.initialise(ModulePropertyManager.java:169)

                        at org.jboss.soa.esb.common.ModulePropertyManager.getPropertyManager(ModulePropertyManager.java:128)

                        at org.jboss.soa.esb.listeners.config.mappers.JmsListenerMapper.getActivationMapperClass(JmsListenerMapper.java:342)

                        at org.jboss.soa.esb.listeners.config.mappers.JmsListenerMapper.getActivationMapper(JmsListenerMapper.java:289)

                        at org.jboss.soa.esb.listeners.config.mappers.JmsListenerMapper.mapJmsJcaAttributes(JmsListenerMapper.java:205)

                        at org.jboss.soa.esb.listeners.config.mappers.JmsListenerMapper.map(JmsListenerMapper.java:106)

                        at org.jboss.soa.esb.listeners.config.mappers.GatewayGenerator.addGatewayConfig(GatewayGenerator.java:124)

                        at org.jboss.soa.esb.listeners.config.mappers.GatewayGenerator.generate(GatewayGenerator.java:106)

                        at org.jboss.soa.esb.listeners.config.mappers.XMLBeansModel.generateGatewayConfig(XMLBeansModel.java:454)

                        at org.jboss.soa.esb.listeners.config.model.Model101SchemaParser$Model101Adapter.generateGatewayConfig(Model101SchemaParser.java:140)

                        at org.jboss.soa.esb.listeners.config.ModelUtil.getListenerGroups(ModelUtil.java:53)

                        at org.jboss.soa.esb.listeners.config.JBoss4ESBDeployer.deployWebGateways(JBoss4ESBDeployer.java:514)

                        at org.jboss.soa.esb.listeners.config.JBoss4ESBDeployer.init(JBoss4ESBDeployer.java:283)

                        at org.jboss.deployment.MainDeployer.init(MainDeployer.java:872)

                        at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:809)

                        at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)

                        at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)

                        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                        at java.lang.reflect.Method.invoke(Method.java:597)

                        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)

                        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)

                        at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)

                • 5. Re: Passing messages between services within action class
                  beve

                  looks like jbossts-common.jar is not located on your classpath.