Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java堆空间错误/内存不足错误_Java_Aspose - Fatal编程技术网

Java堆空间错误/内存不足错误

Java堆空间错误/内存不足错误,java,aspose,Java,Aspose,我收到堆空间错误/内存不足异常。 我正在尝试使用iText生成PDF,并使用asposeAPI将PDF转换为jpg图像。正在生成的PDF有3页,我正在将该PDF逐页转换为图像,并将它们拼接成一幅jpg图像。这段代码在我的本地开发机器上运行良好,但在移动到测试服务器时出现异常 我使用的代码是: public void silSignedPDF(AgreementBean agBean,String sourceTemplatePDFURL, Hashtable<String, String&

我收到堆空间错误/内存不足异常。 我正在尝试使用iText生成PDF,并使用
asposeAPI
将PDF转换为jpg图像。正在生成的PDF有3页,我正在将该PDF逐页转换为图像,并将它们拼接成一幅jpg图像。这段代码在我的本地开发机器上运行良好,但在移动到测试服务器时出现异常

我使用的代码是:

public void silSignedPDF(AgreementBean agBean,String sourceTemplatePDFURL, Hashtable<String, String> val, String destinationPDFPath) throws IOException, DocumentException, SQLException{
 String methodName = "silSignedPDF";
LogTracer.writeDebugLog(className, methodName, "Start");
String serverPath = System.getProperty("jboss.server.home.dir");
String sourceTemplatePDFURL1 = serverPath+AppConstants.PDL_Agreement_Template +"/Online_Installment_Agreement.pdf";
System.out.println("sourceTemplatePDFURL1 "+sourceTemplatePDFURL1);

File f = new File(sourceTemplatePDFURL1);
InputStream sourceTemplatePDFUrlStream = new BufferedInputStream(new FileInputStream(f));
File destinationFile = new File(destinationPDFPath+"/"+agBean.getDealNbr()+".pdf");
PdfReader reader = new PdfReader(sourceTemplatePDFUrlStream);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(
        destinationFile));
AcroFields form = stamper.getAcroFields();

Enumeration enumeration = val.keys();
// iterate through Hashtable val keys Enumeration
while (enumeration.hasMoreElements()) {
    String nextElement = (String) enumeration.nextElement();
    String nextElementValue = (String) val.get(nextElement);
    form.setField(nextElement, nextElementValue);
}
stamper.setFormFlattening(true);
stamper.close();

PdfConverter pdf = new PdfConverter();
pdf.bindPdf(destinationPDFPath+"/"+agBean.getDealNbr()+".pdf");
try {
    pdf.doConvert();
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

//set start and end pages
pdf.setStartPage(1);
pdf.setEndPage(1);

//initialize conversion process

//convert pages to images
String suffix = ".jpg";
int imageCount = 1;
while (pdf.hasNextImage())
{
    try {
        pdf.getNextImage(destinationPDFPath+"/"+agBean.getDealNbr()+"_"+imageCount + suffix,ImageType.JPEG);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
   imageCount++;
}
/* PDFImages pdfDoc = new PDFImages (destinationPDFPath+"/"+agBean.getDealNbr()+".pdf", null);
for (int count = 0; count < pdfDoc.getPageCount(); ++count)
{
    pdfDoc.savePageAsJPEG(count,destinationPDFPath+"/"+agBean.getDealNbr()+"_"+count + ".png", 150, 0.8f);
}*/
File file1 = new File(destinationPDFPath+"/"+agBean.getDealNbr()+"_1" + ".jpg");
File file2 = new File(destinationPDFPath+"/"+agBean.getDealNbr()+"_2" + ".jpg");
File file3 = new File(destinationPDFPath+"/"+agBean.getDealNbr()+"_3" + ".jpg");

BufferedImage img1 = ImageIO.read(file1);
BufferedImage img2 = ImageIO.read(file2);
BufferedImage img3 = ImageIO.read(file3);

int widthImg1 = img1.getWidth();
int heightImg1 = img1.getHeight();
int heightImg2 = img2.getHeight();
int heightImg3 = img3.getHeight();

BufferedImage img = new BufferedImage(
widthImg1, 
heightImg1+heightImg2+heightImg3, 
BufferedImage.TYPE_INT_RGB);

img.createGraphics().drawImage(img1, 0, 0, null); 
img.createGraphics().drawImage(img2, 0, heightImg1, null);
img.createGraphics().drawImage(img3, 0, heightImg1+heightImg2, null);

File final_image = new File(destinationPDFPath+"/"+agBean.getDealNbr() + ".jpg");
ImageIO.write(img, "png", final_image);
file1.delete();
file2.delete();
file3.delete();
LogTracer.writeDebugLog(className, methodName, "End");
}
public void silSignedPDF(AgreementBean agBean,String sourceTemplatePDFURL,Hashtable val,String destinationPDFPath)抛出IOException、DocumentException、SQLException{
String methodName=“silSignedPDF”;
writeDebugLog(className,methodName,“Start”);
字符串serverPath=System.getProperty(“jboss.server.home.dir”);
字符串sourceTemplatePDFURL1=serverPath+AppConstants.PDL\u Agreement\u Template+“/Online\u installation\u Agreement.pdf”;
System.out.println(“sourceTemplatePDFURL1”+sourceTemplatePDFURL1);
文件f=新文件(sourceTemplatePDFURL1);
InputStream sourceTemplatePDFUrlStream=新的BufferedInputStream(新文件InputStream(f));
File destinationFile=新文件(destinationPDFPath+“/”+agBean.getDealNbr()+“.pdf”);
PdfReader reader=新PdfReader(sourceTemplatePDFUrlStream);
PdfStamper stamper=新PdfStamper(读取器,新文件输出流(
目的地);
AcroFields form=stamp.getAcroFields();
枚举=val.keys();
//遍历哈希表val keys枚举
while(枚举.hasMoreElements()){
字符串nextElement=(字符串)枚举.nextElement();
字符串nextElementValue=(字符串)val.get(nextElement);
form.setField(nextElement,nextElementValue);
}
母版。SetFormFlatting(真);
压模关闭();
PdfConverter pdf=新的PdfConverter();
bindPdf(destinationPDFPath+“/”+agBean.getDealNbr()+”.pdf);
试一试{
pdf.doConvert();
}捕获(例外e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
//设置起始页和结束页
pdf.第(1)页;
pdf.setEndPage(1);
//初始化转换过程
//将页面转换为图像
字符串后缀=“.jpg”;
int imageCount=1;
而(pdf.hasNextImage())
{
试一试{
getNextImage(destinationPDFPath+“/”+agBean.getDealNbr()+“933;”+imageCount+后缀,ImageType.JPEG);
}捕获(例外e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
imageCount++;
}
/*PDFImages pdfDoc=新的PDFImages(destinationPDFPath+“/”+agBean.getDealNbr()+“.pdf”,null);
对于(int count=0;count
应该为JVM更改堆大小,但不要将其更改为任何随机数。应根据系统使用的内存修改堆大小。您可以查看进一步的规范。

使用Aspose.Pdf进行页到图像转换所需的内存大于。使用至少512 MB的内存(-Xmx512m)运行程序。

您机器上的jvm和服务器上的内存是否相同-XMX512的可能副本