Sunday, August 23, 2009

Spring-ws and Websphere

Developers have been arguing about the use of servlet containers like Tomcat vs the use of JEE application servers like Websphere for a long time now. And from what i've read, almost everybody seems to agree that application servers lack a great deal of flexibility and sometimes they may be an overhead, especially if you are working on a small to medium application that does not need any of the big features like security, transaction management,ejb... Putting all the arguing aside, in this post i will talk about the challenges i faced when migrating an application that was initially working on Tomcat to Websphere. The application in question was developed using spring-ws and oracle. Here is a list of all the challenges and how i solved them:
  1. DataSource problem: I was getting a message like this one "Cannot convert value of type [com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource] to required type [javax.sql.DataSource] for property 'dataSource': no matching editors or conversion strategy found". I solved it by using PARENT_LAST setting and excluding the Database driver from the ear file.
  2. SAAJ problem: i was getting this message "Could not create message from InputStream: Unable to internalize message; nested exception is com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to internalize message". This was happening because spring depends on a class that exists in the SUN JDK and not in the IBM JDK. I solved it by using AxiomSoapMessageFactory instead of SaajSoapMessageFactory.
  3. Schema problem: i was getting this message "rcase-Recurse.2: There is not a complete functional mapping between the particles.". The same schema was working on Tomcat but not on Websphere and that was because Tomcat is a kind of forgiving when it comes to handling xsds. One of the elements was extending another element with a sequence inside but the child was not respecting the sequence order in the parent.
These are all the things i had to do to get my app working.

2 comments:

Anonymous said...

Hey Adil. I am converting Admin to Websphere 7 and just ran into the same issue you did, #1. Thanks for the help!

Craig Kopinski

Unknown said...

glad i could help