私は、次のコードブロック内PermGenスペースエラー
JasperFillManager.fillReport(reportFile.getPath(), parameters, conn);
を実行するには、次のPermGenスペースエラーを取得しています:
compileFileName = parameters.get("reportName").toString();
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
ServletContext context = (ServletContext) externalContext.getContext();
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();
HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();
ReportConfigUtil.compileReport(context, getCompileDir(), getCompileFileName());
File reportFile = new File(ReportConfigUtil.getJasperFilePath(context, getCompileDir(), getCompileFileName()+".jasper"));
Class.forName(ReportsConstants.DRIVER);
Connection conn = DriverManager.getConnection(ReportsConstants.DB_ACCESS_URL, ReportsConstants.DB_ACCESS_USER_NAME, ReportsConstants.DB_ACCESS_PASSWORD);
parameters.put("BaseDir", reportFile.getParentFile());
JasperPrint jasperPrint = JasperFillManager.fillReport(reportFile.getPath(), parameters, conn);
私が受けていますエラーは以下の通りです。
Caused by: javax.faces.el.EvaluationException: java.lang.OutOfMemoryError: PermGen space
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
... 19 more
Caused by: java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
私の開発環境は次のとおりです。JSF、PrimeFaces、Hibernate、J asperReports、Sybase
あなたは問題を解決するために私に何を提案しますか?
私がこれを読んだのは、Webコンテナの問題です。アプリケーションを少し配備した後でコンテナを再起動する必要があります。 – Damian
Damian様、ウェブコンテナの問題について私の文章を許してください。どうすれば再起動できますか?私は途中でTomcatを使用しています。 –
あなたはWebコンテナと同じようにサーバーを意味します。 –