Hi,

I'm using rabbitmq server 2.1.0 and rabbitmq java client 2.1.0.

I'm currently exploring 'headers' exchange type. I'd publish a message with
argument table set to 'A' for example, with the intent that consumer with
the matching argument 'A' would receive the message. And those consumers
who do not specify 'A' would not get the message.

I'm finding that a consumer ends up receiving all messages if I pass null as
the value for the 'arguments' parameter. I am using the following
queueBind() method of the Channel interface:

AMQP.Queue.BindOk queueBind(java.lang.String?queue,
java.lang.String?exchange,
java.lang.String?routingKey,

java.util.Map<java.lang.String,java.lang.Object>?arguments)
throws java.io.IOException

1. Is this intended? That is, I merely have to specify null for 'arguments'
to receive all messages.
2. Is there any way to prevent a client from subscribing to all messages?
3. Is this an operator error? Am I setting things up incorrectly?

What I'm trying to achieve is some degree of message privacy. Consumer A
would put the key 'A' to argument to receive all messages meant for A, and
Consumer B would put the key 'B' to argument to receive all messages meant
for B. Consumer A is prevented from receiving messages meant for Consumer
B, simply because he is ignorant of the key 'B'.

4. Is there a better way to achieve message privacy?



--
View this message in context: http://old.nabble.com/Passing-null-for-%27arguments%27-to-queueBind%28%29-tp30162963p30162963.html
Sent from the RabbitMQ mailing list archive at Nabble.com.

Search Discussions

  • Matthias Radestock at Nov 10, 2010 at 7:48 am
    Michi,

    michi.oshima wrote:
    I'm currently exploring 'headers' exchange type. I'd publish a message with
    argument table set to 'A' for example, with the intent that consumer with
    the matching argument 'A' would receive the message. And those consumers
    who do not specify 'A' would not get the message.

    I'm finding that a consumer ends up receiving all messages if I pass null as
    the value for the 'arguments' parameter.

    1. Is this intended? That is, I merely have to specify null for 'arguments'
    to receive all messages.
    Yes, that is the specified behaviour.
    2. Is there any way to prevent a client from subscribing to all messages?
    Not directly, but see below.
    What I'm trying to achieve is some degree of message privacy. Consumer A
    would put the key 'A' to argument to receive all messages meant for A, and
    Consumer B would put the key 'B' to argument to receive all messages meant
    for B. Consumer A is prevented from receiving messages meant for Consumer
    B, simply because he is ignorant of the key 'B'.
    So essentially the producer is selecting who is allowed to receive a
    message by listing a set of tokens / shared secrets. Right?

    I can think of three ways of doing that with RabbitMQ...

    1) The publisher sends the message N times to a direct exchange, each
    time with an individual security token as the routing key. Consumers
    bind to that direct exchange with their token. (You could also just use
    the default exchange, if the consumer's queues are named with their
    token). The downside of this approach is the cost of having to send
    (and for the server to process) the same message multiple times.

    2) Write a custom exchange type plug-in. This could work exactly like a
    headers exchange but not permit empty bindings. Or it could work more
    like a direct exchange, with the producer perhaps listing the tokens in
    the message's routing key, comma-separated.

    3) Write a proxy that prevents empty bindings.


    Regards,

    Matthias.
  • Matthias Radestock at Nov 10, 2010 at 8:15 am

    Matthias Radestock wrote:
    I can think of three ways of doing that with RabbitMQ...

    1) The publisher sends the message N times to a direct exchange, each
    time with an individual security token as the routing key. Consumers
    bind to that direct exchange with their token. (You could also just use
    the default exchange, if the consumer's queues are named with their
    token). The downside of this approach is the cost of having to send (and
    for the server to process) the same message multiple times.

    2) Write a custom exchange type plug-in. This could work exactly like a
    headers exchange but not permit empty bindings. Or it could work more
    like a direct exchange, with the producer perhaps listing the tokens in
    the message's routing key, comma-separated.

    3) Write a proxy that prevents empty bindings.
    There is a problem with all of the above approaches...any routing key /
    header included in the message will be passed to *all* consumers, thus
    allowing consumers to learn each other's secrets.

    Back to the drawing board...


    Matthias.
  • Michi Oshima at Nov 10, 2010 at 4:19 pm
    Hi Matthias,


    Matthias Radestock-3 wrote:
    There is a problem with all of the above approaches...any routing key /
    header included in the message will be passed to *all* consumers, thus
    allowing consumers to learn each other's secrets.
    I'm not sure if this is true. My thinking is that if a consumer doesn't
    receive a message, the consumer cannot inspect its properties.

    Does a consumer get all messages, and is it up to some internal logic of the
    consumer to filter out messages that aren't meant for the consumer? I would
    have thought this type of logic would be inside an exchange and kept away
    from consumers.

    For now I'm assuming we aren't back to the drawing board. Your options #2
    and #3 sound promising. (Although I'd have to learn Erlang first.)


    Matthias Radestock-3 wrote:
    2) Write a custom exchange type plug-in. This could work exactly like a
    headers exchange but not permit empty bindings. Or it could work more
    like a direct exchange, with the producer perhaps listing the tokens in
    the message's routing key, comma-separated.
    I think I might try this one. The custom exchange type will be basically a
    headers exchange. The only difference is that a null header will match
    nothing: that is, it won't permit empty bindings.

    I'm so far failing to dig up good information for implementing custom
    exchange type. If you know of a good link, please let me know.


    Matthias Radestock-3 wrote:
    3) Write a proxy that prevents empty bindings.
    Could you direct me to more information about this also? This proxy is
    something new to me. And again, I'm failing to locate information about it.

    In violation of mailing list etiquette, I thank you very much for your
    replies.

    Michi Oshima
    --
    View this message in context: http://old.nabble.com/Passing-null-for-%27arguments%27-to-queueBind%28%29-tp30162963p30182063.html
    Sent from the RabbitMQ mailing list archive at Nabble.com.
  • Matthias Radestock at Nov 10, 2010 at 4:36 pm
    Michi,

    Michi Oshima wrote:
    I'm not sure if this is true. My thinking is that if a consumer doesn't
    receive a message, the consumer cannot inspect its properties.
    The problems is that any consumers that *do* receive the message will
    learn the tokens of all other consumers that received the message too.
    They could subsequently bind to the exchange with these tokens as the
    binding key and receive messages intended for other consumers.

    That is not a problem if there is a fixed set of groups of consumers,
    and messages are always addressed to all the members of a group. For
    that you'd simply assign each group a token, give that to consumers and
    get the consumers to bind with all the tokens they hold.

    It *is* a problem though when the groups are formed dynamically on a per
    message basis, i.e. when each consumer has a unique secret token, known
    to the producer, and the producer constructs the recipient group of the
    message on the fly by including all the intended recipient's tokens in
    the message headers.


    Regards,

    Matthias.
  • Michi Oshima at Nov 10, 2010 at 9:03 pm

    Matthias Radestock-3 wrote:
    It *is* a problem though when the groups are formed dynamically on a per
    message basis, i.e. when each consumer has a unique secret token, known
    to the producer, and the producer constructs the recipient group of the
    message on the fly by including all the intended recipient's tokens in
    the message headers.
    I understand you now, and above is exactly the situation I have. I wonder
    if a custom exchange type can remove headers from a message prior to
    delivery.

    Michi Oshima
    --
    View this message in context: http://old.nabble.com/Passing-null-for-%27arguments%27-to-queueBind%28%29-tp30162963p30184535.html
    Sent from the RabbitMQ mailing list archive at Nabble.com.
  • Michael Bridgen at Nov 12, 2010 at 5:43 pm

    It *is* a problem though when the groups are formed dynamically on
    a per message basis, i.e. when each consumer has a unique secret
    token, known to the producer, and the producer constructs the
    recipient group of the message on the fly by including all the
    intended recipient's tokens in the message headers.
    I understand you now, and above is exactly the situation I have. I
    wonder if a custom exchange type can remove headers from a message
    prior to delivery.
    Here is a design:

    Allow CC and BCC fields* when publishing. These are given to exchange
    types** when routing (i.e., they are part of the envelope); and, the
    routing code removes Bcc before actually delivering to queues.

    Full semantics left as an exercise*** for the reader.

    * They would probably have to be put in message headers, but possibly
    they could be given specific support in our clients.

    ** We'd update direct and topic to take account of them; fanout and
    headers don't need to, and other types given be given the fields and do
    what they like.

    *** For example, "" is a valid routing key, so how do you send to
    multiple recipients just with BCC field?


    Michael
  • Hussein Said at Nov 13, 2010 at 5:06 pm
    Hi,
    I would like to know if there is something equivalent to the WCF
    ServiceModel on the Java side.
    I have a web service hosted in WCF that calls another web Service
    hosted on Axis2. I was able with relative ease
    To add the RabbitMQ binding on the .net side, and use SOAP as the
    protocol, and RabbitMQ as the transport using the RabbitMQ service model
    libraries. Now I would like to be able to do the same thing from the
    Java side using SOAP. This will allow us to leverage our current
    investments in SOAP, but use RabbitMQ powerful messaging infrastructure
    to transport over Queues.


    thanks
  • Emile Joubert at Nov 15, 2010 at 9:49 am
    Hi Hussein,
    On 13/11/10 17:06, Hussein Said wrote:
    Hi,
    I would like to know if there is something equivalent to the WCF
    ServiceModel on the Java side.
    I have a web service hosted in WCF that calls another web Service
    hosted on Axis2. I was able with relative ease
    To add the RabbitMQ binding on the .net side, and use SOAP as the
    protocol, and RabbitMQ as the transport using the RabbitMQ service model
    libraries. Now I would like to be able to do the same thing from the
    Java side using SOAP. This will allow us to leverage our current
    investments in SOAP, but use RabbitMQ powerful messaging infrastructure
    to transport over Queues.

    In theory it should be possible to interoperate using a Java web
    services library that speaks the correct flavour of SOAP, but I'm not
    aware of anyone trying this using the RabbitMQ WCF binding specifically.
    We would be interested to hear the results of your attempt.


    Regards

    Emile
  • Hussein Said at Nov 16, 2010 at 9:26 pm
    WCF RabbitMQ bindings works great and I am consuming Web services using the RabbitMQ binding with little change to our codebase.
    I guess my question is if there are any plans(now or future) to have a custom AXIS2 or JAX-WS Transport for RabbitMQ since they are widely used SOAP stacks. This will greatly benifit the SOAP community so that the adoption of AMQP is less of a barrier if a native AMQP transport client is available. Spring has one, and OpenAMQP has JMS over RabbitMQ. Also, I noticed on the AMQP org site that 1-0 SOAP Mapping <http://mail.cml.com/confluence/display/AMQP/1-0+SOAP+Mapping> is proposed, but that may be months before approved and supported.

    regards
    hussein

    ________________________________

    From: Emile Joubert [mailto:emile at rabbitmq.com]
    Sent: Mon 11/15/2010 4:49 AM
    To: rabbitmq-discuss at lists.rabbitmq.com; Hussein Said
    Subject: Re: [rabbitmq-discuss] SOAP over RabbitMQ



    Hi Hussein,
    On 13/11/10 17:06, Hussein Said wrote:
    Hi,
    I would like to know if there is something equivalent to the WCF
    ServiceModel on the Java side.
    I have a web service hosted in WCF that calls another web Service
    hosted on Axis2. I was able with relative ease
    To add the RabbitMQ binding on the .net side, and use SOAP as the
    protocol, and RabbitMQ as the transport using the RabbitMQ service model
    libraries. Now I would like to be able to do the same thing from the
    Java side using SOAP. This will allow us to leverage our current
    investments in SOAP, but use RabbitMQ powerful messaging infrastructure
    to transport over Queues.

    In theory it should be possible to interoperate using a Java web
    services library that speaks the correct flavour of SOAP, but I'm not
    aware of anyone trying this using the RabbitMQ WCF binding specifically.
    We would be interested to hear the results of your attempt.


    Regards

    Emile


    -------------- next part --------------
    An HTML attachment was scrubbed...
    URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20101116/5ec226ad/attachment.htm>
  • Emile Joubert at Nov 18, 2010 at 4:28 pm
    Hi Hussein,

    Thanks for your question. The RabbitMQ team do not have any immediate
    plans to add a Java SOAP stack, but that could change if there is
    sufficient demand.

    I'm copying in Mark Pollack who may know whether anything related is
    planned for Spring-AMQP.


    Regards

    Emile


    On 16/11/10 21:26, Hussein Said wrote:
    WCF RabbitMQ bindings works great and I am consuming Web services using
    the RabbitMQ binding with little change to our codebase.
    I guess my question is if there are any plans(now or future) to have a
    custom AXIS2 or JAX-WS Transport for RabbitMQ since they are widely used
    SOAP stacks. This will greatly benifit the SOAP community so that the
    adoption of AMQP is less of a barrier if a native AMQP transport client
    is available. Spring has one, and OpenAMQP has JMS over RabbitMQ. Also,
    I noticed on the AMQP org site that 1-0 SOAP Mapping
    <http://mail.cml.com/confluence/display/AMQP/1-0+SOAP+Mapping> is
    proposed, but that may be months before approved and supported.

    regards
    hussein

    ------------------------------------------------------------------------
    *From:* Emile Joubert [mailto:emile at rabbitmq.com]
    *Sent:* Mon 11/15/2010 4:49 AM
    *To:* rabbitmq-discuss at lists.rabbitmq.com; Hussein Said
    *Subject:* Re: [rabbitmq-discuss] SOAP over RabbitMQ

    Hi Hussein,
    On 13/11/10 17:06, Hussein Said wrote:
    Hi,
    I would like to know if there is something equivalent to the WCF
    ServiceModel on the Java side.
    I have a web service hosted in WCF that calls another web Service
    hosted on Axis2. I was able with relative ease
    To add the RabbitMQ binding on the .net side, and use SOAP as the
    protocol, and RabbitMQ as the transport using the RabbitMQ service model
    libraries. Now I would like to be able to do the same thing from the
    Java side using SOAP. This will allow us to leverage our current
    investments in SOAP, but use RabbitMQ powerful messaging infrastructure
    to transport over Queues.

    In theory it should be possible to interoperate using a Java web
    services library that speaks the correct flavour of SOAP, but I'm not
    aware of anyone trying this using the RabbitMQ WCF binding specifically.
    We would be interested to hear the results of your attempt.


    Regards

    Emile

    --
    Emile Joubert

    RabbitMQ
    SpringSource, a division of VMware
  • Mark Pollack at Nov 18, 2010 at 5:16 pm
    Hi,

    No immediate plans. This would though perhaps better sit as an extension/addition to the Spring Web Services project which already supports SOAP over JMS.

    Mark

    -----Original Message-----
    From: Emile Joubert [mailto:emile at rabbitmq.com]
    Sent: Thursday, November 18, 2010 11:29 AM
    To: Hussein Said
    Cc: rabbitmq-discuss at lists.rabbitmq.com; Mark Pollack
    Subject: Re: [rabbitmq-discuss] SOAP over RabbitMQ


    Hi Hussein,

    Thanks for your question. The RabbitMQ team do not have any immediate
    plans to add a Java SOAP stack, but that could change if there is
    sufficient demand.

    I'm copying in Mark Pollack who may know whether anything related is
    planned for Spring-AMQP.


    Regards

    Emile


    On 16/11/10 21:26, Hussein Said wrote:
    WCF RabbitMQ bindings works great and I am consuming Web services using
    the RabbitMQ binding with little change to our codebase.
    I guess my question is if there are any plans(now or future) to have a
    custom AXIS2 or JAX-WS Transport for RabbitMQ since they are widely used
    SOAP stacks. This will greatly benifit the SOAP community so that the
    adoption of AMQP is less of a barrier if a native AMQP transport client
    is available. Spring has one, and OpenAMQP has JMS over RabbitMQ. Also,
    I noticed on the AMQP org site that 1-0 SOAP Mapping
    <http://mail.cml.com/confluence/display/AMQP/1-0+SOAP+Mapping> is
    proposed, but that may be months before approved and supported.

    regards
    hussein

    --------------------------------------------------------------------- ---
    *From:* Emile Joubert [mailto:emile at rabbitmq.com]
    *Sent:* Mon 11/15/2010 4:49 AM
    *To:* rabbitmq-discuss at lists.rabbitmq.com; Hussein Said
    *Subject:* Re: [rabbitmq-discuss] SOAP over RabbitMQ

    Hi Hussein,
    On 13/11/10 17:06, Hussein Said wrote:
    Hi,
    I would like to know if there is something equivalent to the WCF
    ServiceModel on the Java side.
    I have a web service hosted in WCF that calls another web Service
    hosted on Axis2. I was able with relative ease
    To add the RabbitMQ binding on the .net side, and use SOAP as the
    protocol, and RabbitMQ as the transport using the RabbitMQ service
    model
    libraries. Now I would like to be able to do the same thing from the
    Java side using SOAP. This will allow us to leverage our current
    investments in SOAP, but use RabbitMQ powerful messaging
    infrastructure
    to transport over Queues.

    In theory it should be possible to interoperate using a Java web
    services library that speaks the correct flavour of SOAP, but I'm not
    aware of anyone trying this using the RabbitMQ WCF binding
    specifically.
    We would be interested to hear the results of your attempt.


    Regards

    Emile

    --
    Emile Joubert

    RabbitMQ
    SpringSource, a division of VMware
  • Mark Fisher at Nov 18, 2010 at 5:25 pm
    Also, the Spring Integration project provides Web Service adapters (built on top of Spring-WS), and we have AMQP adapters in progress (built on top of Spring-AMQP). So, that at least provides a "bridge" between the two (e.g. inbound-amqp -> outbound-ws or vice versa). While that is different than a native AMQP transport within a SOAP stack, depending on the application, that level of decoupling might provide some advantages, such as routing/transformation/filtering support and more control over the Messaging Mappers.

    -Mark
    ________________________________________
    From: rabbitmq-discuss-bounces at lists.rabbitmq.com [rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Mark Pollack [mpollack at vmware.com]
    Sent: Thursday, November 18, 2010 12:16 PM
    To: Emile Joubert; Hussein Said
    Cc: rabbitmq-discuss at lists.rabbitmq.com
    Subject: Re: [rabbitmq-discuss] SOAP over RabbitMQ

    Hi,

    No immediate plans. This would though perhaps better sit as an extension/addition to the Spring Web Services project which already supports SOAP over JMS.

    Mark

    -----Original Message-----
    From: Emile Joubert [mailto:emile at rabbitmq.com]
    Sent: Thursday, November 18, 2010 11:29 AM
    To: Hussein Said
    Cc: rabbitmq-discuss at lists.rabbitmq.com; Mark Pollack
    Subject: Re: [rabbitmq-discuss] SOAP over RabbitMQ


    Hi Hussein,

    Thanks for your question. The RabbitMQ team do not have any immediate
    plans to add a Java SOAP stack, but that could change if there is
    sufficient demand.

    I'm copying in Mark Pollack who may know whether anything related is
    planned for Spring-AMQP.


    Regards

    Emile


    On 16/11/10 21:26, Hussein Said wrote:
    WCF RabbitMQ bindings works great and I am consuming Web services using
    the RabbitMQ binding with little change to our codebase.
    I guess my question is if there are any plans(now or future) to have a
    custom AXIS2 or JAX-WS Transport for RabbitMQ since they are widely used
    SOAP stacks. This will greatly benifit the SOAP community so that the
    adoption of AMQP is less of a barrier if a native AMQP transport client
    is available. Spring has one, and OpenAMQP has JMS over RabbitMQ. Also,
    I noticed on the AMQP org site that 1-0 SOAP Mapping
    <http://mail.cml.com/confluence/display/AMQP/1-0+SOAP+Mapping> is
    proposed, but that may be months before approved and supported.

    regards
    hussein

    --------------------------------------------------------------------- ---
    *From:* Emile Joubert [mailto:emile at rabbitmq.com]
    *Sent:* Mon 11/15/2010 4:49 AM
    *To:* rabbitmq-discuss at lists.rabbitmq.com; Hussein Said
    *Subject:* Re: [rabbitmq-discuss] SOAP over RabbitMQ

    Hi Hussein,
    On 13/11/10 17:06, Hussein Said wrote:
    Hi,
    I would like to know if there is something equivalent to the WCF
    ServiceModel on the Java side.
    I have a web service hosted in WCF that calls another web Service
    hosted on Axis2. I was able with relative ease
    To add the RabbitMQ binding on the .net side, and use SOAP as the
    protocol, and RabbitMQ as the transport using the RabbitMQ service
    model
    libraries. Now I would like to be able to do the same thing from the
    Java side using SOAP. This will allow us to leverage our current
    investments in SOAP, but use RabbitMQ powerful messaging
    infrastructure
    to transport over Queues.

    In theory it should be possible to interoperate using a Java web
    services library that speaks the correct flavour of SOAP, but I'm not
    aware of anyone trying this using the RabbitMQ WCF binding
    specifically.
    We would be interested to hear the results of your attempt.


    Regards

    Emile

    --
    Emile Joubert

    RabbitMQ
    SpringSource, a division of VMware
    _______________________________________________
    rabbitmq-discuss mailing list
    rabbitmq-discuss at lists.rabbitmq.com
    https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
  • Hussein Said at Nov 18, 2010 at 5:46 pm
    Thanks for your replies. Any idea when those adaptors will be out? It
    definitely looks promising for our needs.
    Note that a native AMQP Transport within the SOAP stack is likely easier
    to adopt within existing SOAP sweatshops, as it would be easier to
    integrate without having to rewire the web services through the
    Spring-WS framework(based on my limited knowledge of the Spring
    framework of course)

    Regards
    hussein

    -----Original Message-----
    From: Mark Fisher [mailto:markfisher at vmware.com]
    Sent: November 18, 2010 12:25 PM
    To: Mark Pollack; Emile Joubert; Hussein Said
    Cc: rabbitmq-discuss at lists.rabbitmq.com
    Subject: RE: [rabbitmq-discuss] SOAP over RabbitMQ

    Also, the Spring Integration project provides Web Service adapters
    (built on top of Spring-WS), and we have AMQP adapters in progress
    (built on top of Spring-AMQP). So, that at least provides a "bridge"
    between the two (e.g. inbound-amqp -> outbound-ws or vice versa). While
    that is different than a native AMQP transport within a SOAP stack,
    depending on the application, that level of decoupling might provide
    some advantages, such as routing/transformation/filtering support and
    more control over the Messaging Mappers.

    -Mark
    ________________________________________
    From: rabbitmq-discuss-bounces at lists.rabbitmq.com
    [rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Mark Pollack
    [mpollack at vmware.com]
    Sent: Thursday, November 18, 2010 12:16 PM
    To: Emile Joubert; Hussein Said
    Cc: rabbitmq-discuss at lists.rabbitmq.com
    Subject: Re: [rabbitmq-discuss] SOAP over RabbitMQ

    Hi,

    No immediate plans. This would though perhaps better sit as an
    extension/addition to the Spring Web Services project which already
    supports SOAP over JMS.

    Mark

    -----Original Message-----
    From: Emile Joubert [mailto:emile at rabbitmq.com]
    Sent: Thursday, November 18, 2010 11:29 AM
    To: Hussein Said
    Cc: rabbitmq-discuss at lists.rabbitmq.com; Mark Pollack
    Subject: Re: [rabbitmq-discuss] SOAP over RabbitMQ


    Hi Hussein,

    Thanks for your question. The RabbitMQ team do not have any immediate
    plans to add a Java SOAP stack, but that could change if there is
    sufficient demand.

    I'm copying in Mark Pollack who may know whether anything related is
    planned for Spring-AMQP.


    Regards

    Emile


    On 16/11/10 21:26, Hussein Said wrote:
    WCF RabbitMQ bindings works great and I am consuming Web services using
    the RabbitMQ binding with little change to our codebase.
    I guess my question is if there are any plans(now or future) to have a
    custom AXIS2 or JAX-WS Transport for RabbitMQ since they are widely used
    SOAP stacks. This will greatly benifit the SOAP community so that
    the
    adoption of AMQP is less of a barrier if a native AMQP transport client
    is available. Spring has one, and OpenAMQP has JMS over RabbitMQ. Also,
    I noticed on the AMQP org site that 1-0 SOAP Mapping
    <http://mail.cml.com/confluence/display/AMQP/1-0+SOAP+Mapping> is
    proposed, but that may be months before approved and supported.

    regards
    hussein
    ---------------------------------------------------------------------
    ---
    *From:* Emile Joubert [mailto:emile at rabbitmq.com]
    *Sent:* Mon 11/15/2010 4:49 AM
    *To:* rabbitmq-discuss at lists.rabbitmq.com; Hussein Said
    *Subject:* Re: [rabbitmq-discuss] SOAP over RabbitMQ

    Hi Hussein,
    On 13/11/10 17:06, Hussein Said wrote:
    Hi,
    I would like to know if there is something equivalent to the WCF
    ServiceModel on the Java side.
    I have a web service hosted in WCF that calls another web Service
    hosted on Axis2. I was able with relative ease
    To add the RabbitMQ binding on the .net side, and use SOAP as the
    protocol, and RabbitMQ as the transport using the RabbitMQ service
    model
    libraries. Now I would like to be able to do the same thing from
    the
    Java side using SOAP. This will allow us to leverage our current
    investments in SOAP, but use RabbitMQ powerful messaging
    infrastructure
    to transport over Queues.

    In theory it should be possible to interoperate using a Java web
    services library that speaks the correct flavour of SOAP, but I'm
    not
    aware of anyone trying this using the RabbitMQ WCF binding
    specifically.
    We would be interested to hear the results of your attempt.


    Regards

    Emile

    --
    Emile Joubert

    RabbitMQ
    SpringSource, a division of VMware
    _______________________________________________
    rabbitmq-discuss mailing list
    rabbitmq-discuss at lists.rabbitmq.com
    https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
  • Mark Pollack at Nov 18, 2010 at 5:58 pm
    Hi,

    It probably wouldn't be easier to adopt a AMQP transport for SOAP if both ends weren't Spring Web Service based (or using the same web services framework). From what I've seen SOAP over JMS isn't a widely supported option across SOAP stacks/products and even then, despite some specs being written on how it should work, I had interoperability issues a few years ago between Spring Web Services on JMS and .NET WCF TIBCO support. SOAP over JMS isn't covered by the WS-I profiles AFAIK.

    Mark

    -----Original Message-----
    From: Hussein Said [mailto:hsaid at plantcml-eads.com]
    Sent: Thursday, November 18, 2010 12:46 PM
    To: Mark Fisher; Mark Pollack; Emile Joubert
    Cc: rabbitmq-discuss at lists.rabbitmq.com
    Subject: RE: [rabbitmq-discuss] SOAP over RabbitMQ

    Thanks for your replies. Any idea when those adaptors will be out? It
    definitely looks promising for our needs.
    Note that a native AMQP Transport within the SOAP stack is likely
    easier
    to adopt within existing SOAP sweatshops, as it would be easier to
    integrate without having to rewire the web services through the
    Spring-WS framework(based on my limited knowledge of the Spring
    framework of course)

    Regards
    hussein

    -----Original Message-----
    From: Mark Fisher [mailto:markfisher at vmware.com]
    Sent: November 18, 2010 12:25 PM
    To: Mark Pollack; Emile Joubert; Hussein Said
    Cc: rabbitmq-discuss at lists.rabbitmq.com
    Subject: RE: [rabbitmq-discuss] SOAP over RabbitMQ

    Also, the Spring Integration project provides Web Service adapters
    (built on top of Spring-WS), and we have AMQP adapters in progress
    (built on top of Spring-AMQP). So, that at least provides a "bridge"
    between the two (e.g. inbound-amqp -> outbound-ws or vice versa). While
    that is different than a native AMQP transport within a SOAP stack,
    depending on the application, that level of decoupling might provide
    some advantages, such as routing/transformation/filtering support and
    more control over the Messaging Mappers.

    -Mark
    ________________________________________
    From: rabbitmq-discuss-bounces at lists.rabbitmq.com
    [rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Mark Pollack
    [mpollack at vmware.com]
    Sent: Thursday, November 18, 2010 12:16 PM
    To: Emile Joubert; Hussein Said
    Cc: rabbitmq-discuss at lists.rabbitmq.com
    Subject: Re: [rabbitmq-discuss] SOAP over RabbitMQ

    Hi,

    No immediate plans. This would though perhaps better sit as an
    extension/addition to the Spring Web Services project which already
    supports SOAP over JMS.

    Mark

    -----Original Message-----
    From: Emile Joubert [mailto:emile at rabbitmq.com]
    Sent: Thursday, November 18, 2010 11:29 AM
    To: Hussein Said
    Cc: rabbitmq-discuss at lists.rabbitmq.com; Mark Pollack
    Subject: Re: [rabbitmq-discuss] SOAP over RabbitMQ


    Hi Hussein,

    Thanks for your question. The RabbitMQ team do not have any immediate
    plans to add a Java SOAP stack, but that could change if there is
    sufficient demand.

    I'm copying in Mark Pollack who may know whether anything related is
    planned for Spring-AMQP.


    Regards

    Emile


    On 16/11/10 21:26, Hussein Said wrote:
    WCF RabbitMQ bindings works great and I am consuming Web services using
    the RabbitMQ binding with little change to our codebase.
    I guess my question is if there are any plans(now or future) to
    have
    a
    custom AXIS2 or JAX-WS Transport for RabbitMQ since they are widely used
    SOAP stacks. This will greatly benifit the SOAP community so that
    the
    adoption of AMQP is less of a barrier if a native AMQP transport client
    is available. Spring has one, and OpenAMQP has JMS over RabbitMQ. Also,
    I noticed on the AMQP org site that 1-0 SOAP Mapping
    <http://mail.cml.com/confluence/display/AMQP/1-0+SOAP+Mapping> is
    proposed, but that may be months before approved and supported.

    regards
    hussein
    ---------------------------------------------------------------------
    ---
    *From:* Emile Joubert [mailto:emile at rabbitmq.com]
    *Sent:* Mon 11/15/2010 4:49 AM
    *To:* rabbitmq-discuss at lists.rabbitmq.com; Hussein Said
    *Subject:* Re: [rabbitmq-discuss] SOAP over RabbitMQ

    Hi Hussein,
    On 13/11/10 17:06, Hussein Said wrote:
    Hi,
    I would like to know if there is something equivalent to the WCF
    ServiceModel on the Java side.
    I have a web service hosted in WCF that calls another web Service
    hosted on Axis2. I was able with relative ease
    To add the RabbitMQ binding on the .net side, and use SOAP as the
    protocol, and RabbitMQ as the transport using the RabbitMQ service
    model
    libraries. Now I would like to be able to do the same thing from
    the
    Java side using SOAP. This will allow us to leverage our current
    investments in SOAP, but use RabbitMQ powerful messaging
    infrastructure
    to transport over Queues.

    In theory it should be possible to interoperate using a Java web
    services library that speaks the correct flavour of SOAP, but I'm
    not
    aware of anyone trying this using the RabbitMQ WCF binding
    specifically.
    We would be interested to hear the results of your attempt.


    Regards

    Emile

    --
    Emile Joubert

    RabbitMQ
    SpringSource, a division of VMware
    _______________________________________________
    rabbitmq-discuss mailing list
    rabbitmq-discuss at lists.rabbitmq.com
    https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
  • Hussein Said at Nov 18, 2010 at 6:32 pm
    You are right. However, if one is using Basic http binding and a
    contract first approach, then interoperability headaches should be
    minimal. I have AXIS2 and WCF talking SOAP this way.
    I guess what I would explore is to use RabbitMQP java client and use the
    AXIS2 Transport framework(as they advertised it for SOAP over JMS) and
    build a custom transport for AXIS2 SOAP over AMQP. In theory, I believe
    this should work and it would be similar to what RabbitMQ ServiceModel
    did for WCF.

    Regards
    hussein

    -----Original Message-----
    From: Mark Pollack [mailto:mpollack at vmware.com]
    Sent: November 18, 2010 12:58 PM
    To: Hussein Said; Mark Fisher; Emile Joubert
    Cc: rabbitmq-discuss at lists.rabbitmq.com
    Subject: RE: [rabbitmq-discuss] SOAP over RabbitMQ

    Hi,

    It probably wouldn't be easier to adopt a AMQP transport for SOAP if
    both ends weren't Spring Web Service based (or using the same web
    services framework). From what I've seen SOAP over JMS isn't a widely
    supported option across SOAP stacks/products and even then, despite some
    specs being written on how it should work, I had interoperability issues
    a few years ago between Spring Web Services on JMS and .NET WCF TIBCO
    support. SOAP over JMS isn't covered by the WS-I profiles AFAIK.

    Mark

    -----Original Message-----
    From: Hussein Said [mailto:hsaid at plantcml-eads.com]
    Sent: Thursday, November 18, 2010 12:46 PM
    To: Mark Fisher; Mark Pollack; Emile Joubert
    Cc: rabbitmq-discuss at lists.rabbitmq.com
    Subject: RE: [rabbitmq-discuss] SOAP over RabbitMQ

    Thanks for your replies. Any idea when those adaptors will be out? It
    definitely looks promising for our needs.
    Note that a native AMQP Transport within the SOAP stack is likely
    easier
    to adopt within existing SOAP sweatshops, as it would be easier to
    integrate without having to rewire the web services through the
    Spring-WS framework(based on my limited knowledge of the Spring
    framework of course)

    Regards
    hussein

    -----Original Message-----
    From: Mark Fisher [mailto:markfisher at vmware.com]
    Sent: November 18, 2010 12:25 PM
    To: Mark Pollack; Emile Joubert; Hussein Said
    Cc: rabbitmq-discuss at lists.rabbitmq.com
    Subject: RE: [rabbitmq-discuss] SOAP over RabbitMQ

    Also, the Spring Integration project provides Web Service adapters
    (built on top of Spring-WS), and we have AMQP adapters in progress
    (built on top of Spring-AMQP). So, that at least provides a "bridge"
    between the two (e.g. inbound-amqp -> outbound-ws or vice versa). While
    that is different than a native AMQP transport within a SOAP stack,
    depending on the application, that level of decoupling might provide
    some advantages, such as routing/transformation/filtering support and
    more control over the Messaging Mappers.

    -Mark
    ________________________________________
    From: rabbitmq-discuss-bounces at lists.rabbitmq.com
    [rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Mark Pollack
    [mpollack at vmware.com]
    Sent: Thursday, November 18, 2010 12:16 PM
    To: Emile Joubert; Hussein Said
    Cc: rabbitmq-discuss at lists.rabbitmq.com
    Subject: Re: [rabbitmq-discuss] SOAP over RabbitMQ

    Hi,

    No immediate plans. This would though perhaps better sit as an
    extension/addition to the Spring Web Services project which already
    supports SOAP over JMS.

    Mark

    -----Original Message-----
    From: Emile Joubert [mailto:emile at rabbitmq.com]
    Sent: Thursday, November 18, 2010 11:29 AM
    To: Hussein Said
    Cc: rabbitmq-discuss at lists.rabbitmq.com; Mark Pollack
    Subject: Re: [rabbitmq-discuss] SOAP over RabbitMQ


    Hi Hussein,

    Thanks for your question. The RabbitMQ team do not have any
    immediate
    plans to add a Java SOAP stack, but that could change if there is
    sufficient demand.

    I'm copying in Mark Pollack who may know whether anything related is
    planned for Spring-AMQP.


    Regards

    Emile


    On 16/11/10 21:26, Hussein Said wrote:
    WCF RabbitMQ bindings works great and I am consuming Web services using
    the RabbitMQ binding with little change to our codebase.
    I guess my question is if there are any plans(now or future) to
    have
    a
    custom AXIS2 or JAX-WS Transport for RabbitMQ since they are
    widely
    used
    SOAP stacks. This will greatly benifit the SOAP community so that
    the
    adoption of AMQP is less of a barrier if a native AMQP transport client
    is available. Spring has one, and OpenAMQP has JMS over RabbitMQ. Also,
    I noticed on the AMQP org site that 1-0 SOAP Mapping
    <http://mail.cml.com/confluence/display/AMQP/1-0+SOAP+Mapping> is
    proposed, but that may be months before approved and supported.

    regards
    hussein
    ---------------------------------------------------------------------
    ---
    *From:* Emile Joubert [mailto:emile at rabbitmq.com]
    *Sent:* Mon 11/15/2010 4:49 AM
    *To:* rabbitmq-discuss at lists.rabbitmq.com; Hussein Said
    *Subject:* Re: [rabbitmq-discuss] SOAP over RabbitMQ

    Hi Hussein,
    On 13/11/10 17:06, Hussein Said wrote:
    Hi,
    I would like to know if there is something equivalent to the WCF
    ServiceModel on the Java side.
    I have a web service hosted in WCF that calls another web
    Service
    hosted on Axis2. I was able with relative ease
    To add the RabbitMQ binding on the .net side, and use SOAP as the
    protocol, and RabbitMQ as the transport using the RabbitMQ
    service
    model
    libraries. Now I would like to be able to do the same thing from
    the
    Java side using SOAP. This will allow us to leverage our current
    investments in SOAP, but use RabbitMQ powerful messaging
    infrastructure
    to transport over Queues.

    In theory it should be possible to interoperate using a Java web
    services library that speaks the correct flavour of SOAP, but I'm
    not
    aware of anyone trying this using the RabbitMQ WCF binding
    specifically.
    We would be interested to hear the results of your attempt.


    Regards

    Emile

    --
    Emile Joubert

    RabbitMQ
    SpringSource, a division of VMware
    _______________________________________________
    rabbitmq-discuss mailing list
    rabbitmq-discuss at lists.rabbitmq.com
    https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
  • Mark Pollack at Nov 18, 2010 at 6:44 pm
    Hi,

    I went down the whole contract first approach as well (that is one of the main features in Spring Web Services!) but interop didn't work out of the box with TIBCO WCF client over JMS and Spring Web Services. I was able to use a hacked together ActiveMQ NMS based WCF implementation to get it to work. While contract first helps of course, in particular in terms of payload data interop, there is more to it than that. I think in my case the WCF implementation wasn't looking in the 'right' spot for the return destination - yea - something really basic like that.

    You can go down the AXIS or Spring Web services route since they both support SOAP over JMS. I'm sure one can get it to work either way and in particular make it fit to whatever the detailed expectations are of the WCF RabbitMQ library. For example, what is its expected format to specify the return reply-to exchange? Next step would be to see if this java implementation would then work against the QPID WCF library? That is my point of where it starts to get sticky - around mixing and matching different web service frameworks out of the box. I'd be interested to know for sure, but as it is not well travel territory expect some bumps.

    Mark





    -----Original Message-----
    From: Hussein Said [mailto:hsaid at plantcml-eads.com]
    Sent: Thursday, November 18, 2010 1:33 PM
    To: Mark Pollack; Mark Fisher; Emile Joubert
    Cc: rabbitmq-discuss at lists.rabbitmq.com
    Subject: RE: [rabbitmq-discuss] SOAP over RabbitMQ

    You are right. However, if one is using Basic http binding and a
    contract first approach, then interoperability headaches should be
    minimal. I have AXIS2 and WCF talking SOAP this way.
    I guess what I would explore is to use RabbitMQP java client and use
    the
    AXIS2 Transport framework(as they advertised it for SOAP over JMS) and
    build a custom transport for AXIS2 SOAP over AMQP. In theory, I believe
    this should work and it would be similar to what RabbitMQ ServiceModel
    did for WCF.

    Regards
    hussein

    -----Original Message-----
    From: Mark Pollack [mailto:mpollack at vmware.com]
    Sent: November 18, 2010 12:58 PM
    To: Hussein Said; Mark Fisher; Emile Joubert
    Cc: rabbitmq-discuss at lists.rabbitmq.com
    Subject: RE: [rabbitmq-discuss] SOAP over RabbitMQ

    Hi,

    It probably wouldn't be easier to adopt a AMQP transport for SOAP if
    both ends weren't Spring Web Service based (or using the same web
    services framework). From what I've seen SOAP over JMS isn't a widely
    supported option across SOAP stacks/products and even then, despite
    some
    specs being written on how it should work, I had interoperability
    issues
    a few years ago between Spring Web Services on JMS and .NET WCF TIBCO
    support. SOAP over JMS isn't covered by the WS-I profiles AFAIK.

    Mark

    -----Original Message-----
    From: Hussein Said [mailto:hsaid at plantcml-eads.com]
    Sent: Thursday, November 18, 2010 12:46 PM
    To: Mark Fisher; Mark Pollack; Emile Joubert
    Cc: rabbitmq-discuss at lists.rabbitmq.com
    Subject: RE: [rabbitmq-discuss] SOAP over RabbitMQ

    Thanks for your replies. Any idea when those adaptors will be out? It
    definitely looks promising for our needs.
    Note that a native AMQP Transport within the SOAP stack is likely
    easier
    to adopt within existing SOAP sweatshops, as it would be easier to
    integrate without having to rewire the web services through the
    Spring-WS framework(based on my limited knowledge of the Spring
    framework of course)

    Regards
    hussein

    -----Original Message-----
    From: Mark Fisher [mailto:markfisher at vmware.com]
    Sent: November 18, 2010 12:25 PM
    To: Mark Pollack; Emile Joubert; Hussein Said
    Cc: rabbitmq-discuss at lists.rabbitmq.com
    Subject: RE: [rabbitmq-discuss] SOAP over RabbitMQ

    Also, the Spring Integration project provides Web Service adapters
    (built on top of Spring-WS), and we have AMQP adapters in progress
    (built on top of Spring-AMQP). So, that at least provides a "bridge"
    between the two (e.g. inbound-amqp -> outbound-ws or vice versa). While
    that is different than a native AMQP transport within a SOAP stack,
    depending on the application, that level of decoupling might provide
    some advantages, such as routing/transformation/filtering support and
    more control over the Messaging Mappers.

    -Mark
    ________________________________________
    From: rabbitmq-discuss-bounces at lists.rabbitmq.com
    [rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Mark Pollack
    [mpollack at vmware.com]
    Sent: Thursday, November 18, 2010 12:16 PM
    To: Emile Joubert; Hussein Said
    Cc: rabbitmq-discuss at lists.rabbitmq.com
    Subject: Re: [rabbitmq-discuss] SOAP over RabbitMQ

    Hi,

    No immediate plans. This would though perhaps better sit as an
    extension/addition to the Spring Web Services project which already
    supports SOAP over JMS.

    Mark

    -----Original Message-----
    From: Emile Joubert [mailto:emile at rabbitmq.com]
    Sent: Thursday, November 18, 2010 11:29 AM
    To: Hussein Said
    Cc: rabbitmq-discuss at lists.rabbitmq.com; Mark Pollack
    Subject: Re: [rabbitmq-discuss] SOAP over RabbitMQ


    Hi Hussein,

    Thanks for your question. The RabbitMQ team do not have any
    immediate
    plans to add a Java SOAP stack, but that could change if there is
    sufficient demand.

    I'm copying in Mark Pollack who may know whether anything related
    is
    planned for Spring-AMQP.


    Regards

    Emile


    On 16/11/10 21:26, Hussein Said wrote:
    WCF RabbitMQ bindings works great and I am consuming Web services using
    the RabbitMQ binding with little change to our codebase.
    I guess my question is if there are any plans(now or future) to
    have
    a
    custom AXIS2 or JAX-WS Transport for RabbitMQ since they are
    widely
    used
    SOAP stacks. This will greatly benifit the SOAP community so that
    the
    adoption of AMQP is less of a barrier if a native AMQP transport client
    is available. Spring has one, and OpenAMQP has JMS over RabbitMQ. Also,
    I noticed on the AMQP org site that 1-0 SOAP Mapping
    <http://mail.cml.com/confluence/display/AMQP/1-0+SOAP+Mapping>
    is
    proposed, but that may be months before approved and supported.

    regards
    hussein
    ---------------------------------------------------------------------
    ---
    *From:* Emile Joubert [mailto:emile at rabbitmq.com]
    *Sent:* Mon 11/15/2010 4:49 AM
    *To:* rabbitmq-discuss at lists.rabbitmq.com; Hussein Said
    *Subject:* Re: [rabbitmq-discuss] SOAP over RabbitMQ

    Hi Hussein,
    On 13/11/10 17:06, Hussein Said wrote:
    Hi,
    I would like to know if there is something equivalent to the WCF
    ServiceModel on the Java side.
    I have a web service hosted in WCF that calls another web
    Service
    hosted on Axis2. I was able with relative ease
    To add the RabbitMQ binding on the .net side, and use SOAP as
    the
    protocol, and RabbitMQ as the transport using the RabbitMQ
    service
    model
    libraries. Now I would like to be able to do the same thing from
    the
    Java side using SOAP. This will allow us to leverage our current
    investments in SOAP, but use RabbitMQ powerful messaging
    infrastructure
    to transport over Queues.

    In theory it should be possible to interoperate using a Java web
    services library that speaks the correct flavour of SOAP, but I'm
    not
    aware of anyone trying this using the RabbitMQ WCF binding
    specifically.
    We would be interested to hear the results of your attempt.


    Regards

    Emile

    --
    Emile Joubert

    RabbitMQ
    SpringSource, a division of VMware
    _______________________________________________
    rabbitmq-discuss mailing list
    rabbitmq-discuss at lists.rabbitmq.com
    https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouprabbitmq-discuss @
categoriesrabbitmq
postedNov 8, '10 at 5:34p
activeNov 18, '10 at 6:44p
posts17
users7
websiterabbitmq.com
irc#rabbitmq

People

Translate

site design / logo © 2023 Grokbase