- - PR -
LinuxサーバーでPDFが出力できない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-11-16 14:28
マシェと申します。
JasperReportsをWeb(Struts)で使って、PDFを出力しようとしています。 帳票のレイアウトはiReportで作成します。 WindowsサーバーではPDFは出力できたのですが、LinuxサーバーでPDFを出力しようとした場合に以下のようなエラーが発生します。 【Windows環境】 OS:Windows2000 Professional APサーバ:Tomcat 5.0.28 【Linux環境】 Fedora Core 3.0 Webサーバー:Apache 2.0.52 APサーバ:Tomcat 5.0.28 【ツール】 IDE:Eclipse3.0.2 PDFレイアウト作成ツール:iReport-0.5.1 【ライブラリ(すべてtomcat/common/lib/に配置)】 jasperreports-1.0.3.jar itext-1.3.jar iTextAsian.jar commons-beanutils-1.5.jar commons-collections-3.1.jar commons-digester-1.7.jar commons-logging-1.0.2.jar 【WindowsのCLASSPATH】 C:/Apache Group/Tomcat 5.0/commo/lib/jasperreports-1.0.3.jar C:/Apache Group/Tomcat 5.0/commo/lib/itext-1.3.jar C:/Apache Group/Tomcat 5.0/commo/lib/iTextAsian.jar 【LinuxのCLASSPATH】 /usr/local/tomcat/common/lib/jasperreports-1.0.3.jar /usr/local/tomcat/common/lib/itext-1.3.jar /usr/local/tomcat/common/lib/iTextAsian.jar 【エラー内容】 java.lang.NoClassDefFoundError java.lang.Class.forName0(Native Method) java.lang.Class.forName(Class.java:141) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62) net.sf.jasperreports.engine.util.JRGraphEnvInitializer.initializeGraphEnv(JRGraphEnvInitializer.java:58) net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:467) ・・・・・・・・・・・・(省略) 【Javaプログラム】 //レポートコンパイラーのクラスパスをセット JRProperties.setProperty(JRProperties.COMPILER_CLASSPATH, "jasperreportsまでのパス"); //デザインXMLファイルのコンパイル jasperDesign = JRXmlLoader.load( ".jrxmlファイルまでのパス"); compiler = JRDefaultCompiler.getInstance(); jasperReport = compiler.compileReport( jasperDesign ); //データの動的バインド paramMap = new HashMap(); paramMap.put("test", "テスト"); jasperPrint = JasperFillManager.fillReport(jasperReport, paramMap, (JRDataSource)null); //PDFへ出力 JasperExportManager.exportReportToPdfFile(jasperPrint, "PDF作成する場所"); LinuxではCLASSLPATHを設定するだけではだめなのでしょうか? どなたか助言お願いいたします。 [ メッセージ編集済み 編集者: マシェ 編集日時 2005-11-16 15:28 ] | ||||
|
投稿日時: 2005-11-16 15:25
WinとLinuxではパスの書き方(?)が違うってのをどっかで見ましたね。
同じ問題かな? | ||||
|
投稿日時: 2005-11-16 15:32
返信ありがとうございます。
パスの書き方を調査してみます。 何か他にも情報がありましたらお願い致します。 | ||||
|
投稿日時: 2005-11-16 15:35
内部で awt パッケージを利用しているようですね。
awt を利用するためには X環境を整える必要があります。 Xなしだと結構面倒だったと思います。 | ||||
|
投稿日時: 2005-11-16 15:52
$CATALINA_HOME/common/lib や WEB-INF/lib にjarをセットしているのであれば、
CLASSPATH云々ではない気がしますが... NoClassDefFoundError なので足りないライブラリがあるだけでは?
X関連のエラー(でもこの場合はNoClassDefFoundErrorにはならないなぁ)の場合であれば、 JVMの起動オプションに java.awt.headless=true でOKかと。 | ||||
|
投稿日時: 2005-11-16 15:53
こんにちは。
Xサーバを起動するか、 Tomcatの catalina.sh に JAVA_OPTS=-Djava.awt.headless=true と入力すると、でるとおもいますよ。 | ||||
|
投稿日時: 2005-11-16 19:38
たくさんの返信ありがとうございます。
教えて頂いた通り、Tomcatの catalina.sh にJAVA_OPTS=-Djava.awt.headless=trueを追加した所、PDFを出力できるようになりました。 皆様、本当にありがとうございました。 |
1