1 2 Previous Next 23 Replies Latest reply on Aug 3, 2012 4:12 PM by Keith Babo

    Writing message to HornetQ

    John DeStefano Apprentice

      Hi,

       

      I'm trying to use a reference to write a message to a HornetQ queue. The basic flow is consume an HL7 message using the MLLP protocol the MessageReaderServiceBean. The referenced serverPipelineFactory below ("pipeline") is a custom Netty pipleing that can consume HL7 messages and also provides TLS/SSL connection. The MessageReaderServiceBean references the QueueServiceBean whhich I believe to be wired, through the PixInboundReference, to a queue. The MessageReaderServiceBean calls the QueueServiceBean. My switchyard.xml is as follows:

       

       

      {code:xml}

      <?xml version="1.0" encoding="UTF-8"?>

      <switchyard xmlns="urn:switchyard-config:switchyard:1.0" xmlns:_1="urn:switchyard-component-jca:config:1.0" xmlns:bean="urn:switchyard-component-bean:config:1.0" xmlns:camel="urn:switchyard-component-camel:config:1.0" xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="test_hl7" targetNamespace="urn:com.example.switchyard:test_hl7:0.0.1-SNAPSHOT">

        <sca:composite name="test_hl7" targetNamespace="urn:com.example.switchyard:test_hl7:0.0.1-SNAPSHOT">

          <sca:service name="MessageReaderService" promote="MessageReaderServiceBean/MessageReaderService">

            <sca:interface.java interface="com.example.switchyard.test_hl7.MessageReaderService"/>

            <camel:binding.camel configURI="netty:tcp://localhost:8888?sync=true&amp;reuseAddress=false&amp;serverPipelineFactory=#pipeline">

              <camel:operationSelector operationName="readMessage"/>

            </camel:binding.camel>

          </sca:service>

          <sca:reference name="PixInboundReference" multiplicity="1..1" promote="QueueServiceBean/PixInboundReference">

            <_1:binding.jca>

        <_1:outboundConnection>

        <_1:resourceAdapter name="hornetq-ra.rar"/>

        <_1:connection jndiName="java:/JmsXA"/>

        </_1:outboundConnection>

        <_1:outboundInteraction>

        <_1:processor type="org.switchyard.component.jca.processor.JMSProcessor">

        <_1:property name="destination" value="queue/PixInboundQueue"/>

        </_1:processor>

        </_1:outboundInteraction>

        </_1:binding.jca>

          </sca:reference>

          <sca:component name="MessageReaderServiceBean">

            <bean:implementation.bean class="com.example.switchyard.test_hl7.MessageReaderServiceBean"/>

            <sca:service name="MessageReaderService">

              <sca:interface.java interface="com.example.switchyard.test_hl7.MessageReaderService"/>

            </sca:service>

            <sca:reference name="QueueService">

              <sca:interface.java interface="com.example.switchyard.test_hl7.QueueService"/>

            </sca:reference>

          </sca:component>

          <sca:component name="QueueServiceBean">

            <bean:implementation.bean class="com.example.switchyard.test_hl7.QueueServiceBean"/>

            <sca:service name="QueueService">

              <sca:interface.java interface="com.example.switchyard.test_hl7.QueueService"/>

            </sca:service>

            <sca:reference name="PixInboundReference">

              <sca:interface.java interface="com.example.switchyard.test_hl7.QueueService"/>

            </sca:reference>

          </sca:component>

        </sca:composite>

        <domain>

          <handlers>

            <handler class="org.switchyard.handlers.MessageTrace" name="MessageTrace"/>

          </handlers>

        </domain>

      </switchyard>

      {code}

       

      I'm using Switchyard 0.5. The QueueServiceBean class is as follows:

       

       

      {code}

      @Service(QueueService.class)

      public class QueueServiceBean implements QueueService {

       

      @Inject

      @Reference("PixInboundReference")

                public QueueService queueService;

       

                public QueueServiceBean() {

                }

       

      @Override

                public void queueMsg(String msg) throws Exception {

                          queueService.queueMsg(msg);

                }

       

      }

      {code}

       

      Any ideas why is doesn't work? Any help would be appreciated.

       

      Thanks

        • 1. Re: Writing message to HornetQ
          John DeStefano Apprentice

          Forgot to mention, there are no errors when running messages through this service.

           

          Thanks

          • 2. Re: Writing message to HornetQ
            Keith Babo Master

            Hmm, that's bizarre.  So you are receiving from the destination queue in a test client and not seeing any messages?  Could be something up with JCA/JMS outbound, but I've tested the JCA outbound quickstart this morning on AS 7 and it works fine.  For giggles, I changed the quickstart to use Camel JMS for the outbound and that worked as well.  If your project is in a state where it can be shared, then attach it to the thread or drop me an email.  I would be interested in debugging it a bit deeper to see what's going on.  Another route to try would be to replace the JCA binding for your references with a Camel JMS binding, e.g.

             

             

            <switchyard xmlns="urn:switchyard-config:switchyard:1.0" xmlns:_1="urn:switchyard-component-jca:config:1.0" xmlns:bean="urn:switchyard-component-bean:config:1.0" xmlns:camel="urn:switchyard-component-camel:config:1.0" xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="test_hl7" targetNamespace="urn:com.example.switchyard:test_hl7:0.0.1-SNAPSHOT">
              <sca:composite name="test_hl7" targetNamespace="urn:com.example.switchyard:test_hl7:0.0.1-SNAPSHOT">
                <sca:reference name="PixInboundReference" multiplicity="1..1" promote="QueueServiceBean/PixInboundReference">
                        <camel:binding.jms>
                            <camel:queue>queue/PixInboundQueue</camel:queue>
                            <camel:connectionFactory>#ConnectionFactory</camel:connectionFactory>
                         </camel:binding.jms>
                </sca:reference>
               <!-- snip -->
            </switchyard>
            
            • 3. Re: Writing message to HornetQ
              John DeStefano Apprentice

              Hi Keith,

               

              Sure, I'll attach the project. Also, the basic flow is HL7 producer sends HL7 message to service -> Message recieved by MessageReaderServiceBean -> MessageReaderServiceBean calls QueueServiceBean.queueMsg -> this should place message on PixInboundQueue -> MessageReaderServiceBean returns an ACK to the HL7 producer. In a subsequent service messages on the PixInboundQueue will be processed. Tried your solution as above but same result. I'm wondering if the JMS session is transactional and not closed correctly causing the message to not "stick" on the queue?

               

               

              Thanks for your help.

              • 4. Re: Writing message to HornetQ
                Keith Babo Master

                John - I'm having a bit of trouble building this from the command-line using Maven.  Are you using an IDE to build and deploy?  Strictly speaking it's not required for me to build your project, so if you could just attach a copy of the deployable app, that will work too.

                 

                I did notice you have message tracing enabled.  If you could send me a copy of the log with our message trace statements in it, that would also help.  My guess is that the reference is not being invoked, but the message trace will reveal what's going on.

                 

                thanks,

                keith

                • 5. Re: Writing message to HornetQ
                  John DeStefano Apprentice

                  Hi Keith,

                   

                  The output looks like this:

                   

                  ------- Begin Message Trace -------

                  Service -> {urn:com.example.switchyard:test_hl7:0.0.1-SNAPSHOT}MessageReaderService

                  Operation -> readMessage

                  Phase -> IN

                  State -> OK

                  Exchange Context ->

                            CamelToEndpoint : switchyard://MessageReaderService?namespace=urn:com.example.switchyard:test_hl7:0.0.1-SNAPSHOT&operationName=readMessage

                            CamelCreatedTimestamp : Wed Jul 25 16:45:04 EDT 2012

                  Message Context ->

                            org.switchyard.transform.TransformSequence : org.switchyard.transform.TransformSequence@6bbfb9e3

                            breadcrumbId : ID-Johns-MacBook-Pro-local-53094-1343242664428-1-1

                            org.switchyard.contentType : java:java.lang.String

                            CamelNettyRemoteAddress : /127.0.0.1:53976

                            CamelNettyChannelHandlerContext : org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext@78451d58

                            CamelNettyMessageEvent : [id: 0x19dc587f, /127.0.0.1:53976 => /127.0.0.1:8888] RECEIVED: MSH|^~\&|XDSDEMO_ADT|XDSDEMO|PIXMgr|IBM|20060614140449-0800||ADT^A04^ADT_A01|6625931354485845374|P|2.3.1 EVN|A04|20060614140449-0800 PID|||AD1C6C5723^^^&1.3.6.1.4.1.21367.2007.1.2.400&ISO||TRENTON^RONEE||19990704|F|||123 MINERAL POINT AVENUE^^MADISON^WI^53711 PV1||O

                            org.switchyard.messageId : a2be03b0-f986-4b63-b188-911359462752

                  Message Content ->

                  MSH|^~\&|XDSDEMO_ADT|XDSDEMO|PIXMgr|IBM|20060614140449-0800||ADT^A04^ADT_A01|6625931354485845374|P|2.3.1

                  EVN|A04|20060614140449-0800

                  PID|||AD1C6C5723^^^&1.3.6.1.4.1.21367.2007.1.2.400&ISO||TRENTON^RONEE||19990704|F|||123 MINERAL POINT AVENUE^^MADISON^WI^53711

                  PV1||O

                  ------ End Message Trace -------

                  16:45:04,640 INFO  [stdout] (New I/O server worker #1-1) IN: org.switchyard.transform.TransformSequence:org.switchyard.transform.TransformSequence@6bbfb9e3

                  16:45:04,640 INFO  [stdout] (New I/O server worker #1-1) IN: breadcrumbId:ID-Johns-MacBook-Pro-local-53094-1343242664428-1-1

                  16:45:04,641 INFO  [stdout] (New I/O server worker #1-1) IN: org.switchyard.contentType:java:java.lang.String

                  16:45:04,641 INFO  [stdout] (New I/O server worker #1-1) IN: CamelNettyRemoteAddress:/127.0.0.1:53976

                  16:45:04,641 INFO  [stdout] (New I/O server worker #1-1) IN: CamelNettyChannelHandlerContext:org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext@78451d58

                  16:45:04,642 INFO  [stdout] (New I/O server worker #1-1) IN: CamelNettyMessageEvent:[id: 0x19dc587f, /127.0.0.1:53976 => /127.0.0.1:8888] RECEIVED: MSH|^~\&|XDSDEMO_ADT|XDSDEMO|PIXMgr|IBM|20060614140449-0800||ADT^A04^ADT_A01|6625931354485845374|P|2.3.1 EVN|A04|20060614140449-0800 PID|||AD1C6C5723^^^&1.3.6.1.4.1.21367.2007.1.2.400&ISO||TRENTON^RONEE||19990704|F|||123 MINERAL POINT AVENUE^^MADISON^WI^53711 PV1||O

                  16:45:04,642 INFO  [stdout] (New I/O server worker #1-1) IN: org.switchyard.messageId:a2be03b0-f986-4b63-b188-911359462752

                  16:45:04,643 INFO  [stdout] (New I/O server worker #1-1) Exchange: CamelToEndpoint:switchyard://MessageReaderService?namespace=urn:com.example.switchyard:test_hl7:0.0.1-SNAPSHOT&operationName=readMessage

                  16:45:04,643 INFO  [stdout] (New I/O server worker #1-1) Exchange: CamelCreatedTimestamp:Wed Jul 25 16:45:04 EDT 2012

                  16:45:04,644 INFO  [org.switchyard.handlers.MessageTrace] (New I/O server worker #1-1)

                  ------- Begin Message Trace -------

                  Service -> {urn:com.example.switchyard:test_hl7:0.0.1-SNAPSHOT}QueueService

                  Operation -> queueMsg

                  Phase -> IN

                  State -> OK

                  Exchange Context ->

                  Message Context ->

                            org.switchyard.transform.TransformSequence : org.switchyard.transform.TransformSequence@64a3682e

                            org.switchyard.contentType : java:java.lang.String

                            org.switchyard.messageId : 8a50f4ae-b17e-48b3-82f1-97059ba854c0

                  Message Content ->

                  MSH|^~\&|XDSDEMO_ADT|XDSDEMO|PIXMgr|IBM|20060614140449-0800||ADT^A04^ADT_A01|6625931354485845374|P|2.3.1

                  EVN|A04|20060614140449-0800

                  PID|||AD1C6C5723^^^&1.3.6.1.4.1.21367.2007.1.2.400&ISO||TRENTON^RONEE||19990704|F|||123 MINERAL POINT AVENUE^^MADISON^WI^53711

                  PV1||O

                  ------ End Message Trace -------

                  16:45:04,646 INFO  [org.switchyard.handlers.MessageTrace] (New I/O server worker #1-1)

                  ------- Begin Message Trace -------

                  Service -> {urn:com.example.switchyard:test_hl7:0.0.1-SNAPSHOT}PixInboundReference

                  Operation -> queueMsg

                  Phase -> IN

                  State -> OK

                  Exchange Context ->

                  Message Context ->

                            org.switchyard.contentType : java:java.lang.String

                            org.switchyard.messageId : 9bf7d262-a342-419e-b55e-64f46d2f38db

                            org.switchyard.transform.TransformSequence : org.switchyard.transform.TransformSequence@47205bdd

                  Message Content ->

                  MSH|^~\&|XDSDEMO_ADT|XDSDEMO|PIXMgr|IBM|20060614140449-0800||ADT^A04^ADT_A01|6625931354485845374|P|2.3.1

                  EVN|A04|20060614140449-0800

                  PID|||AD1C6C5723^^^&1.3.6.1.4.1.21367.2007.1.2.400&ISO||TRENTON^RONEE||19990704|F|||123 MINERAL POINT AVENUE^^MADISON^WI^53711

                  PV1||O

                  ------ End Message Trace -------

                  16:45:04,696 INFO  [ca.uhn.hl7v2.VersionLogger] (New I/O server worker #1-1) HAPI version is: 1.2

                  16:45:04,707 INFO  [ca.uhn.hl7v2.parser.Parser] (New I/O server worker #1-1) Instantiating msg of class ca.uhn.hl7v2.model.v231.message.ADT_A01

                  16:45:04,802 INFO  [ca.uhn.hl7v2.util.Home] (New I/O server worker #1-1) hapi.home is set to /Users/johndestefano/javastuff/JBoss/switchyard/switchyard-as7-0.5/bin/.

                  16:45:04,827 INFO  [org.switchyard.handlers.MessageTrace] (New I/O server worker #1-1)

                  ------- Begin Message Trace -------

                  Service -> {urn:com.example.switchyard:test_hl7:0.0.1-SNAPSHOT}MessageReaderService

                  Operation -> readMessage

                  Phase -> OUT

                  State -> OK

                  Exchange Context ->

                            CamelToEndpoint : switchyard://MessageReaderService?namespace=urn:com.example.switchyard:test_hl7:0.0.1-SNAPSHOT&operationName=readMessage

                            CamelCreatedTimestamp : Wed Jul 25 16:45:04 EDT 2012

                  Message Context ->

                            org.switchyard.relatesTo : a2be03b0-f986-4b63-b188-911359462752

                            org.switchyard.messageId : e5f3a8c3-8683-4d99-b71a-7e75534782dd

                            org.switchyard.transform.TransformSequence : org.switchyard.transform.TransformSequence@1d41ae19

                            org.switchyard.contentType : java:java.lang.String

                  Message Content ->

                  MSH|^~\&|||||20120725164504.798-0500||ACK|184|P|2.3.1

                  MSA|AA|6625931354485845374

                   

                  ------ End Message Trace -------

                   

                   

                  I added the queue definition to the standalone-full.xml file :

                   

                   

                  {code:xml}

                  <jms-destinations>

                                      <jms-queue name="testQueue">

                                          <entry name="queue/test"/>

                                          <entry name="java:jboss/exported/jms/queue/test"/>

                                      </jms-queue>

                                      <jms-queue name="PixInboundQueue">

                                          <entry name="queue/PixInboundQueue"/>

                                          <entry name="java:jboss/exported/jms/queue/PixInboundQueue"/>

                                      </jms-queue>

                                      <jms-topic name="testTopic">

                                          <entry name="topic/test"/>

                                          <entry name="java:jboss/exported/jms/topic/test"/>

                                      </jms-topic>

                                  </jms-destinations>

                  {code}

                   

                   

                  Also added in additional modules and changes to the Switchyard module's xml file. To get this to run I would need to provide you with that which I can do. The project jar file is attached.

                   

                  Thanks

                  • 6. Re: Writing message to HornetQ
                    John DeStefano Apprentice

                    Hi Keith,

                     

                    I added the attached under modules and made appropriate changes in the swichyard module.

                     

                    Thanks

                    • 7. Re: Writing message to HornetQ
                      Keith Babo Master

                      Thanks, John.  From the message trace, it looks like the message should be pushed all the way into the queue.  I'll give this a kick later on tonight and let you know what I find.

                      • 8. Re: Writing message to HornetQ
                        Keith Babo Master

                        OK, gave your new stuff a shot but there are still some missing bits:

                         

                        - The Camel HL7 module is missing. I can patch this together on my own.

                        - The Netty binding is complaining that the keystore is not available (path local to your env).

                         

                        Another way we can go about this is that I can create a bare bones Netty/TCP -> Bean -> Bean -> JMS/JCA app which approximates what you have.  We can verify that the same app works in your environment and then start adding stuff until it breaks. :-)

                         

                        cheers,

                        keith

                        • 9. Re: Writing message to HornetQ
                          John DeStefano Apprentice

                          Hi Keith,

                           

                          The cert and trust stores are attached. They are self generated and for testing. However, I think it would be easier if you created a sample and then I tried to get that working in my environment.

                           

                           

                          Thanks

                          • 10. Re: Writing message to HornetQ
                            Keith Babo Master

                            Assuming I didn't screw something up, I can reproduce this using an app I just created from scratch.  Debugging a bit deeper now.

                            • 11. Re: Writing message to HornetQ
                              Keith Babo Master

                              Went through a ton of permutations and got this working.  I think the JCA outbound flow is starting a transaction that's not getting committed.  Need to talk to Tomo and Jesper about that.  It would work in the JCA quickstart because it's JCA inflow + outbound, and the inflow will commit the transaction after successful delivery.  I was able to get it working with Camel JMS using a separate JMS queue deployment descriptor (not inlined standalone-full.xml).  Not sure why that's happening.  This also works with the HornetQ binding.  Anyhoo, I'll chase up the JCA outbound thing next week.  In the meantime, maybe try your app with a JMS binding and a separate -jms.xml deployment.  For reference, here's the app I created and the queue deployment.

                               

                              hth,

                              keith

                              • 12. Re: Writing message to HornetQ
                                John DeStefano Apprentice

                                Thanks Keith,

                                 

                                I'll give this a try and report back how it works out.

                                • 13. Re: Writing message to HornetQ
                                  John DeStefano Apprentice

                                  Hi Keith,

                                   

                                  That worked. Be interested to see how this is resolved.

                                   

                                   

                                  Thanks

                                  • 14. Re: Writing message to HornetQ
                                    John DeStefano Apprentice

                                    Hi Keith,

                                     

                                    Another issue with reading the message off the queue. Not sure if I should start another tread or not, but I'll post here for now. The problem seems to be in reading a jms TextMessage type from the queue when a jms BtyeMessage type is expected by switch yard.

                                     

                                    The exception looks like this:

                                     

                                     

                                    11:41:09,876 ERROR [org.hornetq.ra.inflow.HornetQMessageHandler] (Thread-9 (HornetQ-client-global-threads-965109235)) Failed to deliver message: java.lang.reflect.UndeclaredThrowableException

                                              at $Proxy64.onMessage(Unknown Source)          at org.hornetq.ra.inflow.HornetQMessageHandler.onMessage(HornetQMessageHandler.java:278)

                                              at org.hornetq.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:983)

                                              at org.hornetq.core.client.impl.ClientConsumerImpl.access$400(ClientConsumerImpl.java:48)

                                              at org.hornetq.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:1113)

                                              at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:100)

                                              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_04]

                                              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_04]

                                              at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_04]

                                    Caused by: java.lang.reflect.InvocationTargetException

                                              at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source) [:1.7.0_04]

                                              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_04]

                                              at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_04]

                                              at org.switchyard.component.jca.EndpointProxy.delivery(EndpointProxy.java:182) [switchyard-component-jca-0.5.0.Final.jar:0.5.0.Final]

                                              at org.switchyard.component.jca.EndpointProxy.invoke(EndpointProxy.java:147) [switchyard-component-jca-0.5.0.Final.jar:0.5.0.Final]

                                              ... 9 more

                                    Caused by: org.switchyard.exception.SwitchYardException: java.lang.ClassCastException: org.hornetq.jms.client.HornetQTextMessage cannot be cast to javax.jms.BytesMessage

                                              at org.switchyard.component.jca.endpoint.JMSEndpoint.onMessage(JMSEndpoint.java:50) [switchyard-component-jca-0.5.0.Final.jar:0.5.0.Final]

                                              ... 14 more

                                    Caused by: java.lang.ClassCastException: org.hornetq.jms.client.HornetQTextMessage cannot be cast to javax.jms.BytesMessage

                                              at org.switchyard.component.jca.composer.JMSMessageComposer.compose(JMSMessageComposer.java:41) [switchyard-component-jca-0.5.0.Final.jar:0.5.0.Final]

                                              at org.switchyard.component.jca.composer.JMSMessageComposer.compose(JMSMessageComposer.java:33) [switchyard-component-jca-0.5.0.Final.jar:0.5.0.Final]

                                              at org.switchyard.component.jca.endpoint.JMSEndpoint.onMessage(JMSEndpoint.java:48) [switchyard-component-jca-0.5.0.Final.jar:0.5.0.Final]

                                              ... 14 more

                                     

                                     

                                    11:41:09,885 WARN  [org.hornetq.core.server.impl.QueueImpl] (Thread-24 (HornetQ-server-HornetQServerImpl::serverUUID=429b9fef-d421-11e1-84a3-68a86d238bfc-335460405)) Message Reference[439]:RELIABLE:ServerMessage[messageID=439,priority=4, bodySize=1500,expiration=0, durable=true, address=jms.queue.PixInboundQueue1,properties=TypedProperties[{breadcrumbId=ID-Johns-MacBook-Pro-local-59064-1343571990000-2-2, org_DOT_switchyard_DOT_operationName=queueMsg}]]@414131026 has exceeded max delivery attempts. No bindings for Dead Letter Address jms.queue.DLQ so dropping it

                                     

                                    The switchyard xml:

                                     

                                     

                                    {code:xml}

                                    <?xml version="1.0" encoding="UTF-8"?>

                                    <switchyard xmlns="urn:switchyard-config:switchyard:1.0"

                                    xmlns:bean="urn:switchyard-component-bean:config:1.0" xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"

                                    name="pix_v3_deliver" targetNamespace="urn:org.pronoiahealth.ihebridge:pix_v3_deliver:0.0.1-SNAPSHOT">

                                    <sca:composite name="pix_v3_deliver"

                                      targetNamespace="urn:org.pronoiahealth.ihebridge:pix_v3_deliver:0.0.1-SNAPSHOT">

                                      <sca:service name="MessageReaderService"

                                      promote="MessageReaderServiceBean/MessageReaderService">

                                      <binding.jca xmlns="urn:switchyard-component-jca:config:1.0">

                                      <inboundConnection>

                                      <resourceAdapter name="hornetq-ra.rar">

                                      </resourceAdapter>

                                      <activationSpec>

                                      <property name="destinationType" value="javax.jms.Queue" />

                                      <property name="destination" value="queue/PixInboundQueue1" />

                                      </activationSpec>

                                      </inboundConnection>

                                      <inboundInteraction>

                                                                                      <listener>javax.jms.MessageListener</listener>

                                      <inboundOperation name="processMessage" selectedOperation="processMessage" />

                                      <endpoint type="org.switchyard.component.jca.endpoint.JMSEndpoint" />

                                      <transacted>true</transacted>

                                      </inboundInteraction>

                                      </binding.jca>

                                      </sca:service>

                                      <sca:component name="MessageReaderServiceBean">

                                      <bean:implementation.bean

                                      class="org.pronoiahealth.ihebridge.pix_v3_deliver.services.MessageReaderServiceBean" />

                                      <sca:service name="MessageReaderService">

                                      <sca:interface.java

                                      interface="org.pronoiahealth.ihebridge.pix_v3_deliver.services.MessageReaderService" />

                                      </sca:service>

                                      </sca:component>

                                    </sca:composite>

                                    </switchyard>

                                    {code}

                                     

                                     

                                    The signature of the inbound operation takes a string:  void processMessage(String msg) throws Exception;

                                     

                                    Any help would be appreciated. I modeled this after the jca inbound example.

                                     

                                     

                                    Thanks

                                    1 2 Previous Next