嗨,我正在使用apache fop,当页面数超过130页时,它无法生成pdf .页号或xml文件的长度是否有任何限制.
线程“主”
中的java.lang.OutOfMemoryError异常:Java堆
java.io.BufferedReader.(BufferedReader.java:80) at java.io.BufferedReader.(BufferedReader.java:91) at org.apache.xml.dtm.ObjectFactory.findJarServiceProviderName(ObjectFac tory.java:579) org.apache.xml.dtm.ObjectFactory.lookUpFactoryClassName(ObjectFactory .java:373(org.apache.xml.dtm.ObjectFactory)。org.apache.xml.dtm.ObjectFactory.createObject(ObjectFactory.java:131) lookUpFactoryClass(ObjectFactory.jav a:206)
在org.apache.xml.dtm.ObjectFactory.createObject(ObjectFactory.java:101) at org.apache.xml.dtm.DTMManager.newInstance(DTMManager.java:135) at org.apache.xpath.XPathContext.reset(XPathContext.java:350) at org.apache.xalan.transformer.TransformerImpl.reset(TransformerImpl.ja va:505( org.apache.xalan.transformer.TransformerImpl.transformNode(Transforme rImpl.java:1436)org.apache.fop.cli.Main.main(Main.java:197) .cli.Main.startFOP(Main.java:166)
发布于 2010-05-07 09:07:13
我已经创建了由几十万行长的xml生成的报告。然而,我遇到了一些问题,创建了一些包含svgs的较小的报告。
您的问题可能是,java默认只分配32 MB内存(如果我记得正确的话),因此内存不足。
在fop.bat文件(假设您正在windows上运行)中,添加以下设置
rem增加标准Java堆大小,以便更大的报告获得足够的内存集JAVAOPTS=-Xmx512M
并按以下方式更改执行行
%JAVACMD %JAVAOPTS % LOGCHOICE % LOGLEVEL% -cp "%LOCALCLASSPATH%“org.apache.fop.cli.Main %FOP_CMD_LINE_ARGS%
这至少应该适用于0.95
https://stackoverflow.com/questions/2680395
复制