Ok, It looks like this could be an issue with the way Java is setting the
params.
Here is the xalan-1 approach to setting params:
DOMParser dp = new DOMParser();
dp.parse(parameterData);
XObject xObj = new XNodeSet(dp.getDocument
().getChildNodes());
XSLTProcess xsltProcessor ....;
xsltProcessor.setStylesheetParam(paramName,xObj);
The new xalan-2 code sets params this way:
Document doc = XmlUtil.parseDocument(parameterData);
XObject xObj = new XNodeSetForDOM(doc.getChildNodes(),
new XPathContext());
Transformer transformer ....;
transformer.setParameter(paramName,xObj);
I wrote a test servlet to run a stylesheet that does a copy: here is the
stylesheet:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version
="1.0">
<xsl:output method="xml" version="1.0" encoding="ISO-8859-1"/>
<xsl:param name="theParam"/>
<xsl:template match="/">
<xsl:copy-of select="$theParam"/>
</xsl:template>
</xsl:stylesheet>
When I ran it; I got an out of bounds exception on the copy-of line of
code.
Java must be passing in bad data or something.
Transformation failed: javax.xml.transform.TransformerException:
java.lang.Array
IndexOutOfBoundsException
; SystemID: http://pc034144.code3.com:80//public_xsl/debugparam.xsl; Line#:
12;
Column#: 42
javax.xml.transform.TransformerException:
java.lang.ArrayIndexOutOfBoundsExcepti
on
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr
ansformerImpl.java:2323)
at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul
t.java:696)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr
ansformerImpl.java:2318)
at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul
t.java:696)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr
ansformerImpl.java:2318)
at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(Tran
sformerImpl.java:2185)
at
org.apache.xalan.transformer.TransformerImpl.transformNode(Transforme
rImpl.java:1263)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp
l.java:671)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp
l.java:1179)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp
l.java:1157)
at com.mmm.ciws.xsl.StylesheetRoot.process(StylesheetRoot.java:74)
at com.mmm.ciws.xsl.XSLTProcessor.process(XSLTProcessor.java:186)
at com.mmm.ciws.xsl.TransformXSL.transform(TransformXSL.java:196)
at com.mmm.ciws.xsl.TransformXSL.transform(TransformXSL.java:157)
at com.mmm.ciws.TestTransform.service(TestTransform.java:125)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
(ServletStubImpl.java:1058)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:401)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:306)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run(WebAppServletContext.java:5445)
at
weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
eManager.java:780)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
rvletContext.java:3105)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
pl.java:2588)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
Any and all help would be greatly appreciated.
Thanks
Keith....