A Xalan TransformerImpl invoked from within Tomcat Servlet is throwing a NPE.  
The Transformer is created using JAXP factory from an XML String converted to a 
StreamSource.  Below, I have provided:
* code that defines the Xalan TransformerImpl
* code the throws the NPE
* org.apache.xalan.xslt.EnvironmentCheck output
* stack trace

Any help would be very much appreciated!  Thanks,  Mark

Here is the code that defines the Transformer that is giving the NPE.  As you 
can see, the XSLT is defined as a String - not a file.

// XSLT to format printing of raw XML - no spaces
public static final String XSLT_RAW = "<?xml version=\"1.0\" 
encoding=\"UTF-8\"?><xsl:stylesheet 
xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"; version=\"1.0\"><xsl:output 
method=\"xml\" encoding=\"UTF-8\" indent=\"no\"/><xsl:strip-space 
elements=\"*\"/><xsl:template match=\"*\"><xsl:copy><xsl:copy-of 
select=\"@*\"/><xsl:apply-templates/></xsl:copy></xsl:template></xsl:stylesheet>";
  TransformerFactory transFac = 
  TransformerFactory.newInstance();
  rawXformer = transFac.newTransformer
   (new StreamSource(new ByteArrayInputStream(XSLT_RAW.getBytes())));

The following code throws the NPE:

    ByteArrayOutputStream out = new ByteArrayOutputStream();
    StreamResult res = new StreamResult(out);
    try {
        rawXformer.transform(new DOMSource(n), res);
    } catch(TransformerException te) { ....

Initially, I thought this might be a bug from an old version of Xalan, but I 
have installed the latest.  Here is the output from 
org.apache.xalan.xslt.EnvironmentCheck: 

#---- BEGIN writeEnvironmentReport($Revision: 1.26 $): Useful stuff found: ----
version.DOM.draftlevel=2.0fd
java.class.path=/usr/share/non-apt/jdk/lib/tools.jar:/usr/share/java/tomcat/bin/bootstrap.jar:/usr/share/java/tomcat/bin/commons-logging-api.jar
version.JAXP=1.1 or higher
java.ext.dirs=/usr/share/non-apt/j2sdk1.4.2_05/jre/lib/ext
#---- BEGIN Listing XML-related jars in: foundclasses.sun.boot.class.path ----
xalan.jar-path=/usr/share/java/tomcat/common/endorsed/xalan.jar
xercesImpl.jar-apparent.version=xercesImpl.jar from Xerces-J-bin.2.6.2
xercesImpl.jar-path=/usr/share/java/tomcat/common/endorsed/xercesImpl.jar
xml-apis.jar-apparent.version=xml-apis.jar from tck-jaxp-1_2_0 branch of 
xml-commons, tag: xml-commons-external_1_2_01
xml-apis.jar-path=/usr/share/java/tomcat/common/endorsed/xml-apis.jar
xsltc.jar-apparent.version=xsltc.jar present-unknown-version
xsltc.jar-path=/usr/share/java/tomcat/common/endorsed/xsltc.jar
#----- END Listing XML-related jars in: foundclasses.sun.boot.class.path -----
version.xerces2=Xerces-J 2.6.2
version.xerces1=not-present
version.xalan2_2=Xalan Java 2.6.0
version.xalan1=not-present
version.ant=Apache Ant version 1.6.1 compiled on February 12 2004
java.version=1.4.2_05
version.DOM=2.0
version.crimson=present-unknown-version
sun.boot.class.path=/usr/share/java/tomcat/common/endorsed/xalan.jar:/usr/share/java/tomcat/common/endorsed/xercesImpl.jar:/usr/share/java/tomcat/common/endorsed/xml-apis.jar:/usr/share/java/tomcat/common/endorsed/xsltc.jar:/usr/share/non-apt/j2sdk1.4.2_05/jre/lib/rt.jar:/usr/share/non-apt/j2sdk1.4.2_05/jre/lib/i18n.jar:/usr/share/non-apt/j2sdk1.4.2_05/jre/lib/sunrsasign.jar:/usr/share/non-apt/j2sdk1.4.2_05/jre/lib/jsse.jar:/usr/share/non-apt/j2sdk1.4.2_05/jre/lib/jce.jar:/usr/share/non-apt/j2sdk1.4.2_05/jre/lib/charsets.jar:/usr/share/non-apt/j2sdk1.4.2_05/jre/classes
version.SAX=2.0
version.xalan2x=Xalan Java 2.6.0
#----- END writeEnvironmentReport: Useful properties found: -----
# YAHOO! Your environment seems to be OK.


Lastly, this is the stack trace from the NPE:

[http-8080-Processor25] ERROR com.javector.util.XMLUtil ; Line#: 1; Column#: 286
javax.xml.transform.TransformerException: java.lang.NullPointerException
        at 
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2341)
        at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:115)
        at 
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
        at 
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
        at 
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
        at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:115)
        at 
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
        at 
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
        at 
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
        at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:115)
        at 
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
        at 
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2202)
        at 
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1276)
        at 
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:673)
        at 
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1192)
        at 
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1170)
        at com.javector.util.XMLUtil.domToString(XMLUtil.java:125)
        at com.javector.util.XMLUtil.domToString(XMLUtil.java:137)
        at 
samples.chap5.oneway.PrintMessage.processMessage(PrintMessage.java:59)
        at 
com.javector.ws.jaxrpc.JAXRPCOneWayService.unmarshalAndProcess(JAXRPCOneWayService.java:98)
        at 
com.javector.ws.jaxrpc.axis.AxisOneWayService.onMessage(AxisOneWayService.java:90)
        at 
com.javector.ws.jaxrpc.axis.oneway.PrintMessageSOAPBindingSkeleton.onMessage(PrintMessageSOAPBindingSkeleton.java:66)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at 
org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:384)
        at 
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:281)
        at 
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:319)
        at 
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at 
org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:450)
        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:285)
        at 
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:653)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at 
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:301)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
        at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at 
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
        at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
        at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
        at 
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
        at 
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
        at java.lang.Thread.run(Thread.java:534)
Caused by: java.lang.NullPointerException
        at org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.nextNode(DOM2DTM.java:387)
        at 
org.apache.xml.dtm.ref.DTMDefaultBase._nextsib(DTMDefaultBase.java:565)
        at 
org.apache.xml.dtm.ref.DTMDefaultBase.getNextSibling(DTMDefaultBase.java:1142)
        at org.apache.xpath.axes.ChildIterator.nextNode(ChildIterator.java:84)
        at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:280)
        at 
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:280)
        at 
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
        at 
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
        ... 61 more
---------

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to