Hello Ruchith and thanks for replying, The problem is not that WSS4J is not working, it is functioning properly (at least until I restart the webapp).
The problem is that the rest of my Websphere server and other webapps is not. It seems that fiddling with the default DOM settings for the whole JVM in runtime cause alot of instability, especially when that DOM implementation is not available to the rest of the appserver (diff classloaders). This is what I think happens and why it breaks my server: When I call a webservice with security moduled engaged the default DOM impl gets changed to "org.apache.axis2.om.impl.dom.jaxp.DocumentBuilderFactoryImpl"; BUT the "org.apache.axis2.om.impl.dom.jaxp.DocumentBuilderFactoryImpl" class is only visible to the Axis2 webapp classloader. This means that every other webapp residing on the server (and websphere itself) that requires a DOM will fail with "Provider org.apache.axis2.om.impl.dom.jaxp.DocumentBuilderFactoryImpl not found" If I try to bring up the Websphere admin console I get that exact error (the console has no knowledge about webapp classes). I also cannot gracefully shutdown websphere (probably due to the same problem). Good news that it is being changed to be thread local but I wonder if that is safe enough as threads could get reused/shared between webapps inside the application server. Best Regards, Johan Andersson -----Original Message----- From: "Ruchith Fernando" <[EMAIL PROTECTED]> To: axis-user@ws.apache.org Date: Thu, 23 Feb 2006 12:25:08 +0600 Subject: Re: [axis2] Problem with Websphere 6 and Axis2 security module Hi, RE: Problem #2: > > Caused by: java.lang.RuntimeException: Unable to create > nullNodejava.lang.NullPointerException > at > org.apache.xml.security.c14n.implementations.CanonicalizerBase.<clinit>(Unknown > Source) The Axis2 security module contains the wss4j-SNAPSHOT.jar and the xml-security.jar since its required by WSS4J. When WSS4J initializes the xml-security library it will load the org.apache.xml.security.c14n.implementations.CanonicalizerBase class. At that point the following static block will be called. static { try { nullNode=DocumentBuilderFactory.newInstance(). newDocumentBuilder().newDocument().createAttributeNS(Constants.NamespaceSpecNS,XMLNS); nullNode.setValue(""); } catch (Exception e) { throw new RuntimeException("Unable to create nullNode"/*,*/+e); } } nullNode is an org.w3c.dom.Attr attribute. Therefore as you can see it was not possible to create the nullNode. Please check whether you can do the above within WebSphere. The security module shipped with Axis2 0.94 will change the default DOM impl of the VM to be DOOM (AXIOM complient DOM impl)... but this works without a problem in Tomcat, Jetty and Axis2-SimpleHTTPServer. I'm not sure whether changing the VM's DOM impl to DOOM caused any problems inside WebSphere. Right now the DOOM impl is changed to be able to set the DOM impl in a ThreadLocal manner where the changed DOM impl will only be visible on the thread that changed it not the whole VM. Therefore you can try the SVN head as well. Thanks, Ruchith