[ubuntu-jp:2479] Re: JFreeChart で困っています。
Takahashi plala
itmate @ sea.plala.or.jp
2010年 1月 8日 (金) 06:12:37 GMT
btm様
お知らせに基づき、/usr/share/tomcat5.5/logs/catalina.2010-01-08.log をチェックしたところ
情報:
validateJarFile(/var/lib/tomcat5.5/webapps/jweather/WEB-INF/lib/servlet.jar)
- jar not loaded.
See Servlet Spec 2.3, section 9.7.2. Offending class:
javax/servlet/Servlet.class
という行がありました。
どうやら、WEB-INF/libを見には行って jar ファイルが要求するものと合致しないためにロードを中止している
かに見えます。
このservlet.jarはJfreeChart-1.0.9 のものを無批判に配置したものなのですが、これがいけないようです。
このファイルを削除してからTomcat5.5を再起動したところ、このエラーはなくなりました。
そこで、問題のページを表示しますと、現象は改善されなかったのですが。。。
なので、servlet.jarのロード失敗のためにJFreeChart のjarファイルのロードまで行かずにロードが中止された、
というのではないらしい、と思っております。
以下はログファイルの再起動をした内容です。
そして、問題のページが出力する例外を、最初に開いたときに表示されるものと、故意に再表示させたときの
ものを載せて見ます。
大変難しい問題なのかもしれません。
宜しくお願いいたします。
===========================================================================================
2010/01/08 14:00:20 org.apache.coyote.http11.Http11BaseProtocol init
情報: Coyote HTTP/1.1を http-8180 で初期化します
2010/01/08 14:00:20 org.apache.catalina.startup.Catalina load
情報: Initialization processed in 1511 ms
2010/01/08 14:00:20 org.apache.catalina.core.StandardService start
情報: サービス Catalina を起動します
2010/01/08 14:00:20 org.apache.catalina.core.StandardEngine start
情報: Starting Servlet Engine: Apache Tomcat/5.5
2010/01/08 14:00:20 org.apache.catalina.core.StandardHost start
情報: XML検証は無効です
2010/01/08 14:00:21 org.apache.catalina.loader.WebappClassLoader
validateJarFile
情報:
validateJarFile(/var/lib/tomcat5.5/webapps/jweather/WEB-INF/lib/servlet.jar)
- jar not loaded.
See Servlet Spec 2.3, section 9.7.2. Offending class:
javax/servlet/Servlet.class
2010/01/08 14:00:23 org.apache.catalina.loader.WebappClassLoader
validateJarFile
情報:
validateJarFile(/var/lib/tomcat5.5/webapps/jweather/WEB-INF/lib/servlet.jar)
- jar not loaded.
See Servlet Spec 2.3, section 9.7.2. Offending class:
javax/servlet/Servlet.class
2010/01/08 14:00:25 org.apache.coyote.http11.Http11BaseProtocol start
情報: Coyote HTTP/1.1を http-8180 で起動します
2010/01/08 14:00:25 org.apache.jk.common.ChannelSocket init
情報: JK: ajp13 listening on /0.0.0.0:8009
2010/01/08 14:00:25 org.apache.jk.server.JkMain start
情報: Jk running ID=0 time=0/47 config=null
2010/01/08 14:00:25 org.apache.catalina.storeconfig.StoreLoader load
情報: Find registry server-registry.xml at classpath resource
2010/01/08 14:00:25 org.apache.catalina.startup.Catalina start
情報: Server startup in 4990 ms
2010/01/08 14:29:15 org.apache.catalina.loader.WebappClassLoader modified
致命的: Resource '/WEB-INF/lib/servlet.jar' is missing
2010/01/08 14:29:15 org.apache.catalina.core.StandardContext reload
情報: このコンテキストの再ロードを開始しました
2010/01/08 14:29:31 org.apache.coyote.http11.Http11BaseProtocol pause
問題のページを指定して最初に表示される例外
type 例外レポート
メッセージ
説明 The server encountered an internal error () that prevented it from
fulfilling this request.
例外
org.apache.jasper.JasperException:
/usr/lib/jvm/java-1.5.0-sun-1.5.0.20/jre/lib/i386/libawt.so:
libmlib_image.so: cannot open shared object file: No such file or directory
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)原因javax.servlet.ServletException:/usr/lib/jvm/java-1.5.0-sun-1.5.0.20/jre/lib/i386/libawt.so:libmlib_image.so: cannot open shared object file: No such file or directory org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774) org.apache.jsp.jweather_jsp._jspService(jweather_jsp.java:645) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)原因java.lang.UnsatisfiedLinkError:/usr/lib/jvm/java-1.5.0-sun-1.5.0.20/jre/lib/i386/libawt.so:libmlib_image.so: cannot open shared object file: No such file or directory java.lang.ClassLoader$NativeLibrary.load(Native Method) java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751) java.lang.ClassLoader.loadLibrary(ClassLoader.java:1668) java.lang.Runtime.loadLibrary0(Runtime.java:822) java.lang.System.loadLibrary(System.java:993) sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50) java.security.AccessController.doPrivileged(Native Method) java.awt.Toolkit.loadLibraries(Toolkit.java:1509) java.awt.Toolkit.<clinit>(Toolkit.java:1530) java.awt.Font.<clinit>(Font.java:144) org.jfree.chart.axis.Axis.<clinit>(Axis.java:130) chart.makeJWeatherChart.makeTempChart(makeJWeatherChart.java:909) chart.makeJWeatherChart.makeChart(makeJWeatherChart.java:227) org.apache.jsp.jweather_jsp._jspService(jweather_jsp.java:193) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)/usr/lib/jvm/java-1.5.0-sun-1.5.0.20/jre/lib/i386/libawt.so:libmlib_image.so: cannot open shared object file: の行の意味は皆目不明です。両方のファイルが表示されているディレクトリに存在しています。================================================================================================再表示ボタンをクリックした時の例外type 例外レポートメッセージ説明 The server encountered an internal error () that prevented it fromfulfilling this request.例外org.apache.jasper.JasperException org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)原因javax.servlet.ServletException org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774) org.apache.jsp.jweather_jsp._jspService(jweather_jsp.java:645) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)原因java.lang.NoClassDefFoundError chart.makeJWeatherChart.makeTempChart(makeJWeatherChart.java:904) chart.makeJWeatherChart.makeChart(makeJWeatherChart.java:222) org.apache.jsp.jweather_jsp._jspService(jweather_jsp.java:193) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)================================================================================================すぐ上の原因の中で最初の makeeTempChart(makeJWeatherChart.java:904) のコードは以下で、JFreeChartのライブラリを参照して失敗しています。 final DateAxis domainAxis = new DateAxis(); // 横軸見出しなし宜しくお願いします。----- Original Message -----From: "Taro Matsuzawa" <btm @ tech.email.ne.jp>To: "Ubuntu Japanese Local Community Team" <ubuntu-jp @ lists.ubuntu.com>Sent: Friday, January 08, 2010 1:58 PMSubject: [ubuntu-jp:2477] Re: JFreeChart で困っています。> -----BEGIN PGP SIGNED MESSAGE-----> Hash: SHA256>> btmです。>> (10/01/08 11:46), Takahashi plala wrote:>> btm様>>>> ご返信、ありがとうございます。>>> tomcatにある起動スクリプトの中で、>>> CLASSPATHを無理矢理書き替えちゃっていたのがあったと思います。>> とのこと。>>>> tomcatは起動した状態で printenv では classpath を確認できるのですが、>> この設定は tomcatでは有効化されていない、ということなのでしょうか。>> やってみもせずに、で申し訳ないのですが。。。>>>> printenvで表示しているのは現在動かしているshell内の環境変数ですよね。> tomcatを起動しているのは、そのshellではないですから、> printenvの値は関係なくなりますよ。>> あと、Ubuntuのtomcatパッケージ(9.10なのでtomcat6ですが)を入れてみて> 確認したのですが、setclasspath.shを使っているかどうかが> パッと見、判断つきませんでした。> ただ、tomcatのデフォルトがCLASSPATHを初期化している処理が> 入っている(setclasspath.shが該当)ので、> 多分何かしら初期化はしているはずです。> # というか初期化せずに余計なCLASSPATHを入れると大変。>> しかし、そもそもWEB-INF/lib以下が読み込まれないって事自体が異常ですね。> 試しにWEB-INF/libをtouchして日付を最新にしてみるとか、> tomcatの起動ログを見てちゃんとCLASSPATHとしてWEB-INF/libを見ているか> どうか確認した方がよさそうですね。> あまり設定やスクリプトをいじるとメンテナンスが大変ですから。>> ではでは。>>> 宜しくお願いいたします。>>>>>> ----- Original Message ----- From: "Taro Matsuzawa"<btm @ tech.email.ne.jp>>> To: "Ubuntu Japanese Local Community Team" <ubuntu-jp @ lists.ubuntu.com>>> Sent: Friday, January 08, 2010 11:08 AM>> Subject: [ubuntu-jp:2470] Re: JFreeChart で困っています。>>>>>>> -----BEGIN PGP SIGNED MESSAGE----->>> Hash: SHA256>>>>>> btmです。>>>>>> tomcatにある起動スクリプトの中で、>>> CLASSPATHを無理矢理書き替えちゃっていたのがあったと思います。>>> # 今手元にJava環境がないのでアレですが。>>> とりあえず、CLASSPATHで起動スクリプトをgrepして、>>> そちらのCLASSPATHにjfreechartとかを呼びだすように編集するか、>>> CLASSPATH=$CLASSPATH:...>>> として既存の環境変数のものを呼びだすようにすればよいかと思います。>>> # もしくは、/etc/default/tomcat5.5にCLASSPATHの設定を追加かな?>>>>>> ではでは。>>>>>> (10/01/08 10:53), Takahashi plala wrote:>>>> 宜しくお願いします。>>>>>>>> ubuntu 8.0.4 + Tomcat5.5 + JFreeChart 1.0.9 にてサーブレットと>>>> 非サーブレットクラスからJFreeChart グラフを描画させようとしているので>>>> すが、>>>> JFreeChartのオブジェクトを 利用している箇所で >>>> java.lang.NoClassDefFoundError>>>> が発生しています。>>>> WEB-INF/lib には jFreeChart-1.0.9.jar , jcommon-1.0.12.jar を配置し>>>> ています。>>>> ubuntu8.0.4 はGUIを描画しています。>>>>>>>> これまでに、この問題への対処として行ってみたことは、>>>> 1.$TOMCAT_HOME/common/lib に上記のライブラリファイルを配置>>>> 2.$TOMCAT_HOME/shared/lib に上記のライブラリファイルを配置>>>> 3./etc/default/tomcat5.5 の AVA_OPTS="-Djava.awt.headless=true>>>> -Xmx128M" のコメントをはずす>>>> 4./usr/share/tomcat/bin/catalina.sh の先頭行に>>>> CATALINA_OPTS="-Djava.awt.headless=true" を追加>>>> 5.CLASSPATH に >>>>/usr/local/lib/XXX/jfreechart-1.0.9.jar:/usr/local/lib/XXX/jcommon-1.0.12.jar>>>> を追加>>>> (/Usr/local/lib/XXX は root にて作成、パーミッション 666を設定 )>>>> printenv にて確認できます。>>>> しかし、ubuntu上でのコンパイルでは上記のライブラリを -classpath で>>>> 指定しないとライブラリを利用している>>>> 箇所がエラーとなりました。同じ問題でTomcat 上のエラーも発生しているの>>>> ではないかと思っております>>>> (指定すればコンパイルは通り、classファイルは生成されます)。>>>>>>>> 以上ですが、問題が解決していません。>>>>>>>> ブラウザにて表示される内容は次のようなものです(サーブレットでのグラ>>>> フ描画の例)。>>>> java.lang.NoClassDefFoundError>>>> org.jfree.chart.ChartFactory.createBarChart(ChartFactory.java:794)>>>> TestBarChart.doGet(TestBarChart.java:57)>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:689)>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)>>>> org.jfree.chart.ChartFactory.createBarChartの部分でライブラリを参照し>>>> ていると思われます。Windows + Tomcat4.1.31 では同クラスを利用して描画>>>> が問題なく行われていま す。宜しくお願いいたします。>>>>>>>>> - -- <------------------------------------------->>>> Taro Matsuzawa AKA btm>>> mail : btm @ tech.email.ne.jp>>> web page : http://d.hatena.ne.jp/smellman/>>> skype : smellman>>> gtalk : btm.smellman @ gmail.com>>> msn : btm @ fh.freeserve.ne.jp>>> <------------------------------------------->>>> -----BEGIN PGP SIGNATURE----->>> Version: GnuPG v1.4.10 (Darwin)>>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/>>>>>> iQIcBAEBCAAGBQJLRpOaAAoJEOo/LIEG6blWuTcP/1LdSA80EguNZ6oltgd43yfi>>> nPW6MUI240tVAEY6m6mZ3+pxcUZaImWkppI5xirmgh7vrBFuunZVxoUqOGiBy76V>>> i0y5QzI87ArAAkI4gBQ0tFTJZeofm4aaxwzyN89o1U+J64mV6lU7FvQRAngvz+Fg>>> vLGyV2RpzIaPujh8rRy4AD7w8WG+/GxtCWQV8hdIh/6qREsT1XkwxXfgfLigHC8C>>> YNgDhx5fcxaSqLYPssUWBIIqkoCfeSZy4QMcxgJgcEaADeeLgMD6VGxIZ1Mhbd3I>>> A3xnL4QsAWTvlJ/Zp5fvcrOx9mT6gcQZYRH3EdyRX8DraCAPQ3MUfBhzT/EB+YxO>>> L7RXRjMg0WeFK1NDerdXzNyTYULJcvuJ7sYp+6HsHXGQhWZ/3W+VG4sh356+SeQc>>> QODxSVwUMTLwj40T+U0Na/r3Qji486EgJYmxZlCURKCGtCxIqkNr66Z/JSDuZ6py>>> iRMDMYboPSAoqSYSHOq70JJLrdrAZxY9LwGCQ7EGP0ebVdOfgtphfYloZeDgCVPi>>> FhymJlwO2LCxnakwiZcEJyZn0uQiUku6Bz0almeJ/1zpnYPTKJpWCMEaVSQv4S+2>>> Gwhp4YcR0d9P4g57K+LVME4mABrtONyztem6JKCRyhlUmm5QkbhNJv/WouYBBFrd>>> U+lkeC32AiZsDT14MNu4>>> =eZI3>>> -----END PGP SIGNATURE----->>>>>>>>>> - --> <------------------------------------------->> Taro Matsuzawa AKA btm> mail : btm @ tech.email.ne.jp> web page : http://d.hatena.ne.jp/smellman/> skype : smellman> gtalk : btm.smellman @ gmail.com> msn : btm @ fh.freeserve.ne.jp> <------------------------------------------->> -----BEGIN PGP SIGNATURE-----> Version: GnuPG v1.4.10 (Darwin)> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/>> iQIcBAEBCAAGBQJLRrt6AAoJEOo/LIEG6blWNmAP/jGDHxVWkkZLvw0nWagD6It3> EmuJAR6ihHCPToUwDh+Ij29f/FgQBP2xvZW0nBKwu68M8CcjDrjVoN1qlVx1ThHD> Bm9REZhP6C62xHdcpDF5kACmdpskC+pYd23dQA6yoO4eZpd4vK46W8nviguL+Ywr> UwrUBI/M03+5PBVK904eMGMPWIwtsIBJT8d4lM3UrxGSmcEXn+Gdq71/x1BEeo7b> Za2aSH3XqJhMZ0Pf//rNsJ3Q8IasvBL/FyX2O8Qhc5id1aS/1b4W9cJOTM4q7gRF> smV/yx2/emNKQbpp1DipEedCfc2S73n7SopABhhadG1T4XRwI/PgjTF+Cz+kZ53C> ylxWhFQ+F+oOmN5Ng3GAatdSXPelIqUms0PU2XF44Si2c9GxGUBXkaXpV/9luG/j> zLUnVbUxdecotrFvBcwAylUcK9erWb6ZKLXs84Eeo3zkKZt4usC6NC7WCM3YfyWi> HqhkeK7w/vgojpYnvYkBhtPs/OwjjQZRF5v+/a8XBz28K2YroAtFRG4XJEENtNc1> KGk0VNyRCd/2x5/xnUByzwZNIPLSbNxLTvtuA1CjZS5clFYL9PcWbOKtLlV4XX5R> 4LJCG0Gs3I/8ulE6QDqKGFPY3YXulNKsCK6YOxLO9qPkv0sR2YFm8DVx5kaVbDPB> T0EGfZpe/DnqncWXA/hg> =9cWx> -----END PGP SIGNATURE----->
ubuntu-jp メーリングリストの案内