- - PR -
サーバリブートで一部機能が動作しなくなってしまいました。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-05-30 11:53
こんにちは、
サーバをリブートしたらリブート前まで動作していた アプリケーションの一部機能が動作しなくなり困っております。 経緯をお話しすると長くなってしまい恐縮なのですが、 javaでjasperReportを使用して 帳票出力するアプリの動作する環境を構築しております。 サーバをリブートする前までは 動作していた帳票出力処理ですが、 リブート後に下記のエラーが発生して出力が出来なくなって 困っております。 ■環境 OS:Redhat Enterprise AS 2.1 Java:1.4.2_03 その他:tomcat4.1.30 apache1.3.23 jasperReport0.5.2 Struts1.1 ■エラーが発生するまでの手順 @サーバリブート Aapache,tomcat起動 Bアプリケーションにて帳票出力 C下記のエラーが発生 HTTP Status 500 - description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: サーブレットの実行により例外を投げました at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:324) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:395) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:673) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:615) at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:786) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:534) root cause 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 dori.jasper.engine.util.JRGraphEnvInitializer.initializeGraphEnv(JRGraphEnvInitializer.java:101) at dori.jasper.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:208) at dori.jasper.engine.fill.JRHorizontalFiller.<init>(JRHorizontalFiller.java:126) at dori.jasper.engine.fill.JRHorizontalFiller.<init>(JRHorizontalFiller.java:118) at dori.jasper.engine.fill.JRFiller.fillReport(JRFiller.java:145) at dori.jasper.engine.JasperFillManager.fillReport(JasperFillManager.java:350) at dori.jasper.engine.JasperFillManager.fillReport(JasperFillManager.java:290) Dxinit &コマンドを実行しx-windowを起動 E再度アプリケーションにて帳票出力 F下記のエラーが発生 HTTP Status 500 - description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: サーブレットの実行により例外を投げました at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:324) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:395) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:673) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:615) at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:786) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:534) root cause java.lang.NoClassDefFoundError at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:141) at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62) at dori.jasper.engine.util.JRGraphEnvInitializer.initializeGraphEnv(JRGraphEnvInitializer.java:101) at dori.jasper.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:208) at dori.jasper.engine.fill.JRHorizontalFiller.<init>(JRHorizontalFiller.java:126) at dori.jasper.engine.fill.JRHorizontalFiller.<init>(JRHorizontalFiller.java:118) at dori.jasper.engine.fill.JRFiller.fillReport(JRFiller.java:145) at dori.jasper.engine.JasperFillManager.fillReport(JasperFillManager.java:350) at dori.jasper.engine.JasperFillManager.fillReport(JasperFillManager.java:290) NoClassDefFoundErrorはクラスパスが無い為に 発生するエラーだと認識しております。 リブート前とリブート後で CLASSPATHを修正してはいませんし、 念のためTomcatのWEB管理画面から アプリを一度削除して再度warファイルを インストールしてapache・tomcatを再起動しても 上記と同様にエラーになります。 どなたかお分かりになる方ご教授下さい。 宜しくお願いします。 |
|
投稿日時: 2006-05-30 15:02
awtを使用するアプリケーションを使うときに、TomcatからXサーバにアクセスできないと、こういったエラーが発生します。
2回目以降にNoClassDefErrorが発生しますが、クラスパスの設定を間違えたから起きるわけではありません。 対策としては、以下の通りでしょうか。 ・pjaを使う http://www.tsuhtan.net/java/pja/ ・headlessモードを使う http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=3183&forum=12 |
|
投稿日時: 2006-05-30 18:03
koe様
返信ありがとうございます。 bash_profileに export JAVA_OPS=-Djava.awt.headless=true の記載をしていましたが、 JAVA_OPSではなくJAVA_OPTSに修正して source ~/.bash_profile を実行してアプリケーションを実行しましたが、 解決しません。 何かお心当たりはございますでしょうか? 以上宜しくお願いします。 |
|
投稿日時: 2006-05-31 10:05
Tomcat実行時に環境変数JAVA_OPTSが評価されていないのかもしれません。
JAVA_OPTSの指定を書くファイルを、 (Tomcatをインストールしたディレクトリ)/bin/setenv.sh にしてみましょう。 あと、Tomcatを起動する方法を詳しく書いてもらえると、もう少しわかるかもしれません。 /etc/rc???/に何を置いたとか、chkconfigで何をしたとか、コマンドラインで何を実行したとか、そういうのです。 |
|
投稿日時: 2006-05-31 16:54
Koe様、お世話になっております。
何とかリブート前と同じく 帳票出力させる事が出来ました。 ■実施手順 Teratermより init 3 を実行してCUIモードにする。 サーバのプロンプトで startx & を実行したところ帳票印字が可能になりました。 initxからstartxに変更したのはLinux初期インストール時は startxのコマンドを使うらしいという情報を得た為です。 また、xinitを使用するには「sample.xinitrc」 or 「system.xinitrc」を、 あらかじめ、自分のディレクトリに.xinitrcとしてコピーしておく必要があるらしい と聞いた為です。 お付き合いくださいまして、 ありがとうございました!!! |
1