Sunday, August 1, 2010

JBoss 5.1 doesn't work well with WebService

I was struggling to adopt WebService in JBoss 5.1. It kept blowing up with Exception saying:

java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage

Thanks to master Google, I figured out the problems and came up with a solution. There is a compatible issue between JBoss 5.1 and webService. From the JBoss 5.1 release note: JBoss 5.1 Compatibility Issues, you would realise that the problem was back to JBoss 5.0. It’s supposed to be fixed after that. But somehow, it wasn’t. Basically, there are two issues:

1. It doesn’t really pick up the $JBOSS_HOME/lib/endorsed directory. So I had to end up specifying endorsed folder in JBoss server configuration. That means if you run your JBoss from Eclipse, you need to add the following parameter into the VM arguments of the JBoss server:

-Djava.endorsed.dirs=$JBOSS_HOME /lib/endorsed

2. Copy the following jar files from $JBOSS_HOME /lib to $JBOSS_HOME /lib/endorsed:

jbossws-native-saaj.jar

jbossws-native-jaxrpc.jar

jbossws-native-jaxws.jar

jbossws-native-jaxws-ext.jar

Then Everything should start working!