ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » classLoader problem with webservices SOAP,WSRR) - broker 6.1

Post new topic  Reply to topic
 classLoader problem with webservices SOAP,WSRR) - broker 6.1 « View previous topic :: View next topic » 
Author Message
wbintegrator
PostPosted: Thu Mar 26, 2009 7:16 am    Post subject: classLoader problem with webservices SOAP,WSRR) - broker 6.1 Reply with quote

Voyager

Joined: 08 Feb 2006
Posts: 83

Hi everybody,

We're running a Broker 6.1.0.3 on Redhat Enterprise Linux 4 update 4 with toolkit 6.1.0.3 fixpack 3 on a Windows.

We've been experiencing a very weird SOAP problem almost a week now when one of my colleagues noticed in one of the broker log files that the last jar loaded was the com.ibm.ws.webservices.thinclient_6.1.0.jar located in the /var/mqsi/shared-classes/ directory, put there for the sake of the custom WSRR node we wrote. (The built-in node currently doesn't support recursive(deep) retrievals, which we need badly).

He had an idea to remove it from there, which somehow solved the SOAP problem but as expected, reproduced the WSRR connectivity problems which we had prior to putting the jar in the shared-classes folder.

The error we get without the jar is NoClassDefFoundError on com.ibm.ws.webservices.multiprotocol.AgnosticService

Originally we were pretty surprised to have to manually add the com.ibm.ws.webservices.thinclient_6.1.0.jar to shared-classes as the broker has all the required jars in /opt/mqsi/wsrrclient which must indespensibly be loaded for the webservice/wsrr support which come built-n with version 6.1. Anyway, we put the above jar which solved the problem and after about a month of proper functioning gave the strange errors with SOAP nodes which did WORK fine until now.

In the current situation, with the jar removed and the SOAP working fine, I tried manually getting the class from code:

the classLoader returned for the executing class is
Code:

com.ibm.broker.classloading.EGSharedClassLoader


I also tried
Code:

Thread.currentThread().setContextClassLoader(cl)

where 'cl' is the above classLoader and tried to load the
com.ibm.ws.webservices.multiprotocol.AgnosticService with it but got the NoClassDefFoundError.

Can it be that the broker loads the required jars in a way that makes them invisible to user classes? And if so, why on earth should I get the weird SOAP errors when trying to resolve the NoClassDefFoundError by putting the required jar in shared-classes folder? A bug???

Any ideas?

Thanks,

Joesph
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Mar 26, 2009 7:34 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

All of the classes in jars deployed to shared-classes should be being loaded by the Shared classloader, not by the EGShared classloader - at least as I understand it. The only things that should be getting loaded by EGShared classloader are anything you deploy in a jar file inside a BAR file.

If you have developed a custom node, rather than a JCN, then you should be packaging and deploying that as a PAR file rather than as a jar file. Then it will get it's *own* classloader that should not interfere with any other nodes.

If you are getting conflicts between things deployed in shared-classes and things used by built-in nodes, then you should open a PMR.
Back to top
View user's profile Send private message
wbintegrator
PostPosted: Thu Mar 26, 2009 8:39 am    Post subject: Reply with quote

Voyager

Joined: 08 Feb 2006
Posts: 83

Thanks for the reply mqjeff.

Actually I meant to say Java Compute Node, not custom node. It is a JCN that uses the webservice interface api to communicate with the WSRR.

So is it OK that an EGShared Classloader does the loading for a JCN?

btw, I also tried adding to CLASSPATH instead of shared-classes - the same problem. The only way I didn't try is pacakging the jars in the bar, since the jars are pretty big and the whole package is around 18 mg. (choked the EG the first and last time i tried it)

As for the collision that seems to be taking place, I will open a PMR.

Thanks again,
Joseph
Back to top
View user's profile Send private message
akidase
PostPosted: Wed Feb 09, 2011 2:43 am    Post subject: Reply with quote

Centurion

Joined: 10 Jan 2011
Posts: 124

Please let us know the results.

Thanks!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » classLoader problem with webservices SOAP,WSRR) - broker 6.1
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.