2008-08-11

CWSIA0084E - What planet is WebSphere from!

At my current client we are evaluating different light weight ESB frameworks, that is to be hosted on the IBM WebSphere 6.1 platform.

We have chosen the web deployment model for our integrations so basically we are building a bunch of .war applications that we deploy. Within these .war application we have the light weight ESB embedded.

Today it's Mule's turn and I am building a proof of concept mirroring an existing integration we have on our old heavy weight platform. This integration uses two internal JMS queues to store intermediate messages in a route path.

I have setup a project using Mule 2.0.2 with its different transports and among them mule-transport-jms for the JMS part.

All is dandy when I run the application out-of-container with my unit tests where we use Jetty and ActiveMQ. No problem there.

I repackage my application without ActiveMQ and setup Mule to use WebSphere JMS connection factory instead.

Kaboom. I get a CWSIA0084E exception. Great there is an unique token to use for Google search (IBM got that part right), however I immediately got disappointed as even Google had a hard time to find any links - 6 hits.

At the end I found this IBM article from a IBM person:
Quoting from the article:
"So when you get this error, the problem isn't a bug in your code, it's your entire approach. In a nutshell, if you want to run a MessageListener in J2EE, don't implement a MessageListener, implement a (can you guess?) messsage-driven bean (the JMS kind, which implements MessageListener). And if you don't like using EJBs? Get used to it. MDBs work in J2EE; MessageListeners don't."

So I am just asking what planet are IBM WebSphere from? Please not always be so strict to the spec any other container I have worked with allowed you to work with JMS from any deployment model of choice.

Well that is -1 for Mule and -2 for WebSphere. Unfortunately WebSphere will prevail.

No comments: