While I was googling for some web services related work, I came across several pages containing “SOAP over JMS”. SOAP over HTTP makes sense, SOAP over SMTP makes sense, but what about SOAP over JMS?
Here are some links that I found interesting.
- Asynchronous Web Services and the Enterprise Service Bus
- Soap over JMS – what does it mean and why should I care?
- Building a JMS Web service using SOAP over JMS and WebSphere Studio
I understand the motivation of these authors. But the descriptions are technically inaccurate.
JMS is not a wire protocol. JMS does not define how a message should be transported across the network. You could as well write a JMS implementation using HTTP to transport messages.
When I dug into these articles, I found that they were actually talking about receiving a SOAP message over HTTP and then sending it to a JMS component (such as a message driven bean), and not “transporting SOAP over JMS”. There is no such thing as “SOAP over JMS”.

{ 2 comments… read them below or add one }
Subbu,
“SOAP over JMS” indeed makes sense (at least to me and authors) and here is how..
JMS is not just an API or MDB – it’s a messaging Service – simply put, a store and forward mechanism. You can send SOAP or any other text messages using the messaging service.
Let’s say application ‘A’ with a SOAP engine writes a SOAP request message into messaging service(queue) and application ‘B’ with a SOAP engine reads that SOAP message from the message service(queue), processes it and then responds in similar fashion – see there is no HTTP or SMTP used in this scenario, offcourse there are lower level protocols such as TCP/IP are involved.
You are right in that JMS is not a protocol like HTTP or SMTP, but one can send SOAP messages bw apps using a JMS provider.
SOAP over JMS does makes sense a lot! Actually, within smaller network (as said in 1st reference), it makes a lot of sense to use JMS for reliable messaging. However, in bigger networks as HTTP is quite default and easy supported by servers (which might not be case by all servers), hence, jms-http-http-jms is no bad soln.
I’m looking for an example implementatino for SOAP over JMS. Any pointers?
Thanks…