Announcement Announcement Module
Collapse
No announcement yet.
JMS AMQP wrapper Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • JMS AMQP wrapper

    Hello,

    I'm trying to find a way to plugin RabbitMQ (and Spring Integration) into Apache CXF. If there's a CXF endpoint that plugs into a JMS message listener and there appears to be no good solution to this problem. I've reviewed qpid which can expose a JMS message listener and connect to RabbitMQ, but it's a little complicated and is perhaps too heavyweight, ie why implement an AMQP connector when Spring Integrate has a project that already does it for us?

    I'm therefore looking for feedback to how hard it would be to write a JMS message listener that wraps an AMQP message listener. Surely this problem can be solved via a lightweight solution?

    Are there any starting points? Are there pitfalls?


    John
    Last edited by jbakerc; Apr 26th, 2012, 11:23 AM.

  • #2
    Can you provide a bit more information about the role of the JMS MessageListener? I assume you are trying to use an endpoint that is itself intended to listen to a JMS destination?

    Comment


    • #3
      Yes, that is the plan. CXF has JMS support and integrates with Spring, although I'm not sure it'll accept a message listener (upon further inspection). However, there must be lots of components that are designed to listen to JMS destinations that could be wired into AMQP if such a bridge existed.

      Comment


      • #4
        Let's step back a moment. We have inbound AMQP and JMS adapters. They are basically interchangeable from the downstream perspective since they each convert a Message and send it to a Message Channel. Can you explain why you need CXF in this case? If you simply want the listening endpoint, and you are planning to use Spring Integration, it should be sufficient. I assume there is something else (or some existing code) that you are trying to reuse?

        Thanks,
        Mark

        Comment


        • #5
          Hello,

          My use case is to pick up a message from RabbitMQ and validate it against a WSDL. I've had to write something by hand, and I was hoping there may be some way to plug CXF into RabbitMQ to do this for me.

          However, even if I could plug CXF into RabbitMQ, I can't see an obvious way to configure CXF to pick up a message, validate against a WSDL and push it into a channel.


          John

          Comment


          • #6
            May be you don't need CXF after all. From the EIP standpoint validation is a job of a separate component - Filter http://www.eaipatterns.com/Filter.html which can be configured to do several things (e.g., simply discard invalid message or trigger an exception that might result in alternate message flow etc.) Please read this http://static.springsource.org/sprin...single/#filter for more info.

            Comment


            • #7
              Originally posted by oleg.zhurakousky View Post
              May be you don't need CXF after all. From the EIP standpoint validation is a job of a separate component - Filter http://www.eaipatterns.com/Filter.html which can be configured to do several things (e.g., simply discard invalid message or trigger an exception that might result in alternate message flow etc.) Please read this http://static.springsource.org/sprin...single/#filter for more info.
              To an extent, I agree that CXF is not needed, however the effort involved in validating the message (when the WSDL included multiple schemas) was beyond belief. I found posts online stating that no obvious open source solution existed, and I've had to write it myself. The only remaining problem I face is the Xerces schema catalog support seems either broken or badly documented, as I can't get it to work and hence I'm having to load all the schemas into the validator.



              John

              Comment


              • #8
                I have a similar requirement , where my clients sends soap messages over AMQP and uses Rabbit broker.
                My services could either be a legacy service written on CXF (jax ws endpoint), or a POJO service advertised as a service activator in SI.
                In such cases SOAP over AMQP support , or JMS Support for Rabbit or a CXF endpoint support in Spring integration can come handy.

                This way, i can migrate my services stack from CXF to SI and (from http based to AMQP based) without affecting the clients.

                Comment

                Working...
                X