I'm developing a web service which should notify a Java application when it receives a particular SOAP message. So far I've considered using a database table (overkill), sockets (simple but not elegant) and JMS. It's been suggested to use an Enterprise Service Bus like Apache Synapse but that seems like overkill. Any other suggestions?
Are there any particular drawbacks to JMS in this case?
I wouldn't say that using a database table is always overkill - sometimes it may be, but there are times it is a justified solution. It depends on the circumstances.
JMS is also a good alternative, but has some drawbacks like, for instance, not being able to consume an arbitrary pending message.
Finally, I also want to say that using an ESB is not necessarily overkill. I have only worked with Mule, but I feel that it can be justified due to the speed with which you can develop.
If you want a more detailed answer, please describe your scenario in slightly greater detail.