Liferay CE 6.1 を使用して、Oracle データベースにクエリを実行し、Jasper 4.5 からの HTML、PDF、および Excel レポートを表示するポートレットを作成しました。HTML レポートに画像を表示しようとしています。PDF および Excel レポートに画像があります。動的クエリが適切に機能している状態で情報がそこに表示されるため、レポートはこれから正しく呼び出されています。これは正しく設定されていると思いますが、画像を表示できません。私はJavaが初めてなので、これをデバッグするための最良の方法を決定しようとしています. 私のコードはここにあります:
レポート生成コード:
Connection conn = myconnection.getconnection;
JasperPrint print = null;
String reportPath = "/html/reports/MyReport.jasper";
PortletContext context = getPortletContext();
InputStream reportStream = context.getResourceAsStream(reportPath);
Map<String, Object> map = new HashMap<String, Object>();
print = JasperFillManager.fillReport(reportStream, map, conn);
HTML エクスポータ クラス:
JRHtmlExporter exporter = new JRHtmlExporter();
request.getPortletSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE,printObject);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, printObject);
exporter.setParameter(JRExporterParameter.OUTPUT_STRING_BUFFER, outputBuffer);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "../servlets/image?image=");
exporter.setParameter(JRHtmlExporterParameter.IS_WHITE_PAGE_BACKGROUND,java.lang.Boolean.FALSE);
exporter.setParameter(JRHtmlExporterParameter.IGNORE_PAGE_MARGINS, java.lang.Boolean.TRUE);
exporter.exportReport();
そして、web.xmlにこのコードがあります
<servlet>
<servlet-name>ImageServlet</servlet-name>
<servlet-class>net.sf.jasperreports.j2ee.servlets.ImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ImageServlet</servlet-name>
<url-pattern>/servlets/image</url-pattern>
</servlet-mapping>
私が読んだところはどこでも、私はこの権利を持っていると信じていますが、HTML バージョンでは何も得られません。レポートの PDF および XLS バージョンにはすべて、グラフィックとグラフが表示されます。これをデバッグまたはトラブルシューティングして追跡する方法の手がかりはありますか?
ありがとう、ジョージ