I have the stax api jars in the axis2 WEB-INF lib, the problem occurs when I remove the servlet-api-2.3.jar from the WEB-INF/lib. When I remove it from the WEB-INF/lib, the classloader attempts to load classes from the webapp parent classloader (which, in turn loads the stax classes from the weblogic class loader). I don't think it's a good practice to bundle the servlet api with the war file... I found this issue during cleanup. If I leave the servlet-api jar in the WEB-INF/lib everything works fine.
Thanks, jp4 -----Original Message----- From: Pal, Ravi [mailto:[EMAIL PROTECTED] Sent: Tue 5/29/2007 10:36 AM To: John Pfeifer Subject: RE: Stax API Issues on Weblogic 9 yes - your axis application class path. -----Original Message----- From: John Pfeifer [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 29, 2007 7:52 PM To: Pal, Ravi Subject: RE: Stax API Issues on Weblogic 9 Do you mean add both api jars to the weblogic system classpath? Thanks, jp4 -----Original Message----- From: Pal, Ravi [ mailto:[EMAIL PROTECTED] Sent: Tue 5/29/2007 10:22 AM To: John Pfeifer Subject: RE: Stax API Issues on Weblogic 9 use STAX 1 and STAX 2 in your class path, note, you would require both of them. -----Original Message----- From: John Pfeifer [ mailto:[EMAIL PROTECTED] Sent: Tuesday, May 29, 2007 7:15 PM To: [email protected] Subject: Stax API Issues on Weblogic 9 I am running into an issue running axis2 on Weblogic 9... If I remove the servlet-api-2.3.jar from the axis2.war file I get the following error. Root cause of ServletException. [java] java.lang.NoSuchMethodError: javax.xml.stream.XMLOutputFactory.newInstance(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLOutputFactory; [java] at org.apache.axiom.om.util.StAXUtils.getXMLOutputFactory(StAXUtils.java:97) [java] at org.apache.axiom.om.util.StAXUtils.createXMLStreamWriter(StAXUtils.java:123) [java] at org.apache.axiom.om.impl.MTOMXMLStreamWriter.<init>(MTOMXMLStreamWriter.java:74) [java] at org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume(OMNodeImpl.java:410) [java] at org.apache.axis2.transport.http.CommonsHTTPTransportSender.sendUsingOutputStream(CommonsHTTPTransportSender.java:275) [java] Truncated. see log file for complete stacktrace I did a bit more investigation and found that the XMLOutputFactory class in the stax-api-1.0.1.jar file contains a method with the following signature public static XMLOutputFactory newInstance(String factoryId, ClassLoader classLoader) throws FactoryConfigurationError The weblogic jar file however contains a different method signature public static XMLInputFactory newInstance(String factoryId, ClassLoader classLoader) throws FactoryConfigurationError Basically, I want to cleanup the dependencies in my axis2.war file and shouldn't have to carry around the servlet api inside the war file. It looks like the BEA method signature above is incorrect (why would XMLOutputFactory.newInstance() return an XMLInputFactory object?). Has anyone encountered this issues, if so what is the workaround? I don't want to prepend the stax-api jar to the system classpath unless I can be sure that it won't break anything in Weblogic? Suggestions would be appreciated. Thanks, jp4
