Hi all,

I am having a few problems with soap and classpaths.
This may sound simple on the face of it but it is confusing me!

First we have a soap client using the apache soap client code, talking to weblogic 6.
I remember at the time having to put xerces in the start of the classpath for weblogic and setting up and XML registry for weblogic to use.

SOAP required some classes from javax.mail etc, so i remember lazily at the time getting this from the current version of weblogic.jar (6.1 I believe).

With some reordering of things in the class path this seemed to work fine.

However we have since upgraded to service pack 3 for weblogic 6. And with this in the client side classpath I only get null responses from soap.

It is not an option to just stick with the old weblogic.jar as we will shortly be making soap requests from within weblogic.

I have done a bit of digging and found this to be the problem. A file exists in weblogic.jar called javax.xml.parsers.DocumentBuilderFactory. I assume this points to

the factory used for generating specific parser XML documents. The class contained in this file is different between the two weblogic versions. This however is not a problem becuase on

a client I can create my own and have this in the classpath first, or within weblogic I can use XML registry to set it.

However the question is what to set this two. When the client used to work (pre service pack 3 weblogic.jar) soap used to get the response and create an element of type org.apache.crimson.tree.ElementNode.

I am not sure why it chose this. The class used to exist in the old weblogic.jar. This has since been removed from weblogic.jar post service pack 3. The class I am not getting returned on the soap client is either weblogic.apache.xerces.dom.DeferredElementImpl or org.apache.xerces.dom.DeferredElementNSImpl. I can quite easily make it create the latter one, either on the client or within weblogic by changing the classpath or XML registry respectively. However soap doesn't seem to like this and gives me a null value in the ((Element)result1.getValue()).toString() call.

Soap seems to want a org.apache.crimson.tree.ElementNode to be created. Why cant it handle the others? Can I make it do so?

Any help appreciated

Thanks

Norman

 

 

Reply via email to