  | |  That ole "org.apache.xml.dtm.DTMException: No more DTM IDs are av
ailable " aga | That ole "org.apache.xml.dtm.DTMException: No more DTM IDs are av
ailable " aga 2003-05-21 - By Francis, Lee
I am using cocoon with Xalan 2.5.0 and Xerces 2.4.0 to transform an xml source file into an excel doc. I have been getting the problem : ------------------------------------------------------ org.apache.xml.dtm.DTMException: No more DTM IDs are available ------------------------------------------------------ The xsl is very simple as is the xml doc, it works fine when transforming a small xml source doc but anything of size 2+ MB I get the no more dtm id's problem.
Having read through all the threads on how to resolve this issue I have tried all of the following.
make sure most recent version of Xalan 2.5 and Xerces 2.4 are being used, I even modified the CocoonServlet so it writes out it my environment.. ------------------------------------------------------ boolean environmentOK = (new EnvironmentCheck()).checkEnvironment (new PrintWriter(System.out)); ------------------------------------------------------
The result was : ------------------------------------------------------ #---- BEGIN writeEnvironmentReport($Revision: 1.19 $): Useful stuff found: ---- version.DOM.draftlevel=2.0fd java.class.path=./tools/loader version.JAXP=1.1 java.ext.dirs=/usr/java/j2sdk1.4.1_02/jre/lib/ext #---- BEGIN Listing XML-related jars in: foundclasses.sun.boot.class.path ---- xalan.jar-apparent.version=xalan.jar WARNING.present-unknown-version xalan.jar-path=/root/temp/cocoon-2.1m2/./lib/endorsed/xalan.jar xercesImpl.jar-apparent.version=xercesImpl.jar from xalan-j_2_5_0 from xerces-2_4 xercesImpl.jar-path=/root/temp/cocoon-2.1m2/./lib/endorsed/xercesImpl.jar xml-apis.jar-apparent.version=xml-apis.jar present-unknown-version xml-apis.jar-path=/root/temp/cocoon-2.1m2/./lib/endorsed/xml-apis.jar xalansamples.jar-apparent.version=xalansamples.jar present-unknown-version xalansamples.jar-path=/root/temp/cocoon-2.1m2/./lib/endorsed/xalansamples.ja r #----- END Listing XML-related jars in: foundclasses.sun.boot.class.path ----- version.xerces2=Xerces-J 2.4.0 version.xerces1=not-present version.xalan2_2=Xalan Java 2.5.0 version.xalan1=not-present version.ant=not-present java.version=1.4.1_02 version.DOM=2.0 version.crimson=not-present sun.boot.class.path=./lib/endorsed/xalan.jar:./lib/endorsed/xercesImpl.jar:. /lib/endorsed/xml-apis.jar:./lib/endorsed/bsf.jar:./lib/endorsed/xalansample s.jar:./lib/endorsed/xsltcapplet.jar:./lib/endorsed/xsltcbrazil.jar:./lib/en dorsed/xsltcejb.jar:./lib/endorsed/xsltcservlet.jar:/usr/java/j2sdk1.4.1_02/ jre/lib/rt.jar:/usr/java/j2sdk1.4.1_02/jre/lib/i18n.jar:/usr/java/j2sdk1.4.1 _02/jre/lib/sunrsasign.jar:/usr/java/j2sdk1.4.1_02/jre/lib/jsse.jar:/usr/jav a/j2sdk1.4.1_02/jre/lib/jce.jar:/usr/java/j2sdk1.4.1_02/jre/lib/charsets.jar :/usr/java/j2sdk1.4.1_02/jre/classes version.SAX=2.0 version.xalan2x=Xalan Java 2.5.0 #----- END writeEnvironmentReport: Useful properties found: ----- # YAHOO! Your environment seems to be OK. ------------------------------------------------------
I even removed all the apache stuff from rt.jar. The next thing I looked at was my xml source file and the xsl file to make sure there was no crazy infinite recursion happening, the xml file was just over 4MB and looked something like this...
------------------------------------------------------ <?xml version="1.0" encoding="UTF-8"?> <USERBYPAGE xmlns:gmr="http://www.gnome.org/gnumeric/v7" xmlns:sql="http://apache.org/cocoon/SQL/2.0"><CONTENT>
<ROW><COL>User Name</COL><COL>me</COL></ROW> <ROW><COL>Page Id</COL><COL>test</COL></ROW> <ROW><COL>Page Description</COL><COL>test</COL></ROW> <ROW><COL>Silo Id</COL><COL>test</COL></ROW> <ROW><COL>Silo Description</COL><COL>test</COL></ROW> <ROW><COL>Product Id</COL><COL>test</COL></ROW> <ROW><COL>Product Description</COL><COL>test</COL></ROW> <ROW><COL>Total Hits</COL><COL>1318</COL></ROW> <ROW><COL>Active Hits</COL><COL>9</COL></ROW> <ROW><COL>Passive Hits</COL><COL>1309</COL></ROW> <ROW><COL>01-15-2003 13:57:10.147</COL><COL>1042657026344</COL><COL>1</COL></ROW> <ROW><COL>01-15-2003 13:57:10.279</COL><COL>1042657026344</COL><COL>1</COL></ROW> <ROW><COL>01-15-2003 13:58:26.248</COL><COL>1042657026344</COL><COL>1</COL></ROW> <ROW><COL>01-15-2003 13:58:26.481</COL><COL>1042657026344</COL><COL>1</COL></ROW> <ROW><COL>01-15-2003 15:14:47.475</COL><COL>1042657026344</COL><COL>1</COL></ROW> :: :: :: </CONTENT></USERBYPAGE> ------------------------------------------------------ and the xsl looked something like this : ------------------------------------------------------ <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sql="http://apache.org/cocoon/SQL/2.0" xmlns:gmr="http://www.gnome.org/gnumeric/v7">
<xsl:template match="/"> <xsl:apply-templates/> </xsl:template>
<xsl:template match="USERBYPAGE"> <gmr:Workbook xmlns:gmr="http://www.gnome.org/gnumeric/v7"> <gmr:Sheets> <gmr:Sheet DisplayFormulas="false" HideZero="false" HideGrid="false" HideColHeader="false" HideRowHeader="false" DisplayOutlines="true" OutlineSymbolsBelow="true" OutlineSymbolsRight="true"> <gmr:Name> <xsl:value-of select="'User By Page'"/> </gmr:Name> <gmr:MaxCol>2</gmr:MaxCol> <gmr:Cols DefaultSizePts="48"> <gmr:ColInfo No="0" Unit="48" MarginA="2" MarginB="2" Count="7"/> </gmr:Cols> <gmr:Rows DefaultSizePts="12.8"> <gmr:RowInfo No="0" Unit="12.8" MarginA="0" MarginB="0" Count="9"/> <gmr:RowInfo No="10" Unit="12.8" MarginA="1" MarginB="0" Count="24"/> </gmr:Rows> <gmr:Cells> <xsl:apply-templates/> </gmr:Cells> </gmr:Sheet> </gmr:Sheets> </gmr:Workbook> </xsl:template>
<xsl:template match="CONTENT"> <xsl:apply-templates/> </xsl:template>
<xsl:template match="ROW"> <xsl:variable name="rownumber"> <xsl:number level="any" from="CONTENT" count="ROW"/> </xsl:variable> <xsl:for-each select="COL"> <xsl:apply-templates select="."> <xsl:with-param name="rownumber" select="$rownumber"/> </xsl:apply-templates> </xsl:for-each> </xsl:template>
<xsl:template match="COL"> <xsl:param name="rownumber">0</xsl:param> <xsl:variable name="colnumber"> <xsl:number level="any" from="ROW" count="COL"/> </xsl:variable> <gmr:Cell Col="$colnumber" ValueType="60"> <xsl:attribute name="Row"> <xsl:value-of select="$rownumber"/> </xsl:attribute> <gmr:Content> <xsl:value-of select="."/> </gmr:Content> </gmr:Cell> </xsl:template> </xsl:stylesheet> ------------------------------------------------------
Any help appreciated..
Thx.
Lee.
|
|
 |