Two days ago, I upgraded the hibernate version used by our app to Hibernate 4.2.8 primarily because of org.hibernate.engine.spi.EntityKey consumes a lot of memory. Unfortunately, javassist in Websphere is not yet updated which clashes with javassist-3.18.1-GA.jar used by hibernate 4.2.8.

I tried manually replacing ${WAS_ROOT_INSTALL}/plugins/javassist.jar with javassist-3.18.1-GA.jar (I know it’s not a good practice) but I got this error in SystemOut.log when I restarted Websphere.

... (I forgot to document the first lines)
Caused by: java.lang.NoClassDefFoundError: com.ibm.ws.webcontainer.webapp.collaborator.WebAppCollaborator

So I restored the previous javassist.jar and restarted Websphere and for some weird reason, I think the entire websphere was messed up due to what I did because I got this error

[2/27/14 16:26:38:336 WIT] 00000001 ChannelFramew E   CHFW0017E: Failed to load transport channel: com.ibm.wsspi.channel.framework.exception.ChannelException: Channel descriptor not found for HTTPQueueInboundChannel_1183122130078
  at com.ibm.ws.channel.framework.impl.WSChannelFrameworkImpl.getChannelType(WSChannelFrameworkImpl.java:524)

and upon checking one of the FFDC emitted incident file, I still see Caused by: java.lang.NoClassDefFoundError: com.ibm.ws.webcontainer.webapp.collaborator.WebAppCollaborator

After hours of experimenting how to restore Websphere, I ended up calling for SOS.

So I experimented again using the other Websphere in other box. I set the classloader policy to single and Parent last. This time, I got this error

Error Message: javax.servlet.ServletException: java.lang.NoSuchMethodError: org/apache/commons/collections/CollectionUtils.isNotEmpty(Ljava/util/Collection;)Z

Wew… What an improvement.


I accidentally stumbled at clear websphere caches and it solved my entire problem. After javassist is updated, /profiles/profile_name/bin/osgiCfgInit.sh and /bin/clearClassCache.sh should be executed.