- PR -

Linux環境でのPDF生成不具合

1
投稿者投稿内容
おぴー
会議室デビュー日: 2006/01/11
投稿数: 2
投稿日時: 2006-01-11 20:49
【JDK】1.4.2_09
【tomcat】5.0.28
【apache】2.0.46
【iReport】iReport-0.5.3
jasperReport-1.1.1
iText-1.3.1
iTextAsian

上記の環境で、eclipse+JSF(FacesIDE0.1.9)でwebアプリの開発をしております。
WindowsXPでPDF生成を行えることは確認できたのですが、それをプロジェクト毎
RedHat ES3に移して実行したところ下記のエラーが出てしまいました。(その他の
部分に関しては問題なく動いてます。)

※※※エラー内容※※※
2006-01-11 16:46:51 StandardWrapperValve[Faces Servlet]: サーブレット Faces Servlet のServlet.service()が例外を投げまし

javax.faces.FacesException: Error calling action method of component with id fm:btn
at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:74)
at javax.faces.component.UICommand.broadcast(UICommand.java:106)
at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:90)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:164)
at org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:316)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:106)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Caused by: javax.faces.el.EvaluationException: Exception while invoking expression #{HA_Paper_Act.CreatePDF}
at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:153)
at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63)
... 35 more
Caused by: java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable
.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:134)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
at net.sf.jasperreports.engine.util.JRGraphEnvInitializer.initializeGraphEnv(JRGraphEnvInitializer.java:58)
at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:404)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:92)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:74)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:113)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:57)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:163)
at net.sf.jasperreports.engine.JasperRunManager.runReportToPdfFile(JasperRunManager.java:89)
at hakaru_beans.Com_bean.makePDF(Com_bean.java:270)
at hakaru_beans.hassou_beans.HA_Paper_Act.CreatePDF(HA_Paper_Act.java:56)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:129)
... 36 more




12月の中旬ごろからいろいろと調べて対策を試してはいるのですがまだ解決されて
いない状況です。システムプロパティに 「java.awt.headless=true」と設定するという
方法も見つけて、catalina.shに「export CATALINA_OPTS = '-Djava.awt.headless = true'」
を追加してみましたがダメでした。。。
原因は何が考えられるでしょうか?また、「java.awt.headless=true」の設定の詳細なども
分かる方がいましたら、教えて頂けないでしょうか?
よろしくお願い致します。
ハツキタツミ
大ベテラン
会議室デビュー日: 2005/05/24
投稿数: 108
投稿日時: 2006-01-12 09:02
コード:
export CATALINA_OPTS = '-Djava.awt.headless = true'


じゃなくて
コード:
JAVA_OPTS = "-Djava.awt.headless = true"


の間違いでは?

自分はcatalina.sh中の
コード:
# OS specific support.  $var _must_ be set to either true or false.


の前あたりに記述してます。
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2006-01-12 09:17
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/awt/AWTChanges.html#headless

記述ミスかな?
export CATALINA_OPTS = '-Djava.awt.headless=true'
=のところをスペース無しで書いたらどうですか?

私の手元のcatalina.shでは JAVA_OPTS と CATALINA_OPTS は
くっつけて使われているようでどっちに書いても同じ動きのようです。
おぴー
会議室デビュー日: 2006/01/11
投稿数: 2
投稿日時: 2006-01-12 10:28
ハツキタツミ様、Java僧様
ご回答ありがとうございます。

export CATALINA_OPTS = '-Djava.awt.headless=true'
JAVA_OPTS = "-Djava.awt.headless = true"
上記ご指摘の部分について試してみましたが、現象変わらず
どちらも最初の投稿で書いたエラーメッセージが出力されました。
また、「'」→「"」に変更したりいろんな組合せも試しましたが
同様のエラーが出力されています。

いろんな掲示板を参照していますが
すべてとは言わないにしても、色々試していますが
出来ていないということは、それ以前の別の場所に起因してるのかなとも
思うのですが、お恥ずかしながらどこをどう見ればいいのか分かりません。

その辺の部分も含めまして、ご指導いただけますでしょうか。
よろしくお願いいたします。
flatline
大ベテラン
会議室デビュー日: 2005/09/22
投稿数: 102
投稿日時: 2006-01-12 12:40
手元に環境がないので確認できませんが、以前に、Fedora Core2 で
PDF作成ではないのですが、同様のエラーが発生したとき、
 1. catalina.sh の、"start" の、Java オプションに、-Djava.awt.headless=true
  を追加。
 2. startup.sh に、環境変数JAVA_FONTS を指定しておく
  export JAVA_FONTS=/usr/share/fonts/ja/TrueType
という手順で解決したことがあります。
 余談ですが、catalina.sh の、"start" には、"-security" ありの場合となしの
場合の2カ所があって、"-security" ありの方だけに追加していたため、
現象が変わらず時間を消費した記憶もあります(^^;

1

スキルアップ/キャリアアップ(JOB@IT)