- PR -

javaのバージョンエラー?

1
投稿者投稿内容
まつじん
ベテラン
会議室デビュー日: 2005/12/02
投稿数: 54
投稿日時: 2007-01-19 09:57
現在、下記の環境にて開発を行っています。
OS:WindowsXP
サーバ:Linux(FedoraCore4)
言語:JDK1.5
DB:postgre8.0.1

実は、別のプロジェクト使用したソースを今回のプロジェクトに
再利用しようとしましてソースをそのまま持ってきました。
Windowsのローカル環境ではうまく動くのですが、サーバのLinux環境に
移行して動きを確認すると下記のエラーが出てしまいます。
エラーの内容見てutilパッケージのLoginDAOが無いことなのだと
思いました。それで、実際にwarファイルの中身を見てみたのですが
utilフォルダの中にはLoginDAOがちゃんと入っていました。
それで、「FedoraCore」をキーワードに検索すると、
「FedoraCoreに入っているlibgcj(java1.4)のパスが実際利用したいJava1.5のパスより
先に書かれている為、libgcjが先に起動しておかしくなっている」
みたいなことが書かれてありました。
つまり、javaのバージョンがおかしいからだということらしいのですが、今回再利用したソースは前回のプロジェクトでは同じ環境で問題なく動いていたのになぜ今回は?
という疑問も出ています。
あと、ためしにパスの順番を変更しようとlibgcjのパスが記載されている場所と実際にインストールしたjava1.5のパスが書かれている場所を探そうとしました。
しかし、rootの.bash_profile、.bashrcの中身には何も書かれてはいませんでした。
この質問はLinuxSqureかとも思いましたが、もし気がつく点がありましたら指摘をよろしくお願いいたします。


例外

javax.servlet.ServletException: util.LoginDAO
org.apache.struts.actions.DispatchAction.dispatchMethod(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String) (Unknown Source)
org.apache.struts.actions.DispatchAction.execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) (Unknown Source)
org.apache.struts.actions.MappingDispatchAction.execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) (Unknown Source)
org.apache.struts.action.RequestProcessor.processActionPerform(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.apache.struts.action.Action, org.apache.struts.action.ActionForm, org.apache.struts.action.ActionMapping) (Unknown Source)
org.apache.struts.action.RequestProcessor.process(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) (Unknown Source)
org.apache.struts.action.ActionServlet.process(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) (Unknown Source)
org.apache.struts.action.ActionServlet.doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) (Unknown Source)
javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) (/usr/lib/libservletapi5-5.0.30.jar.so)
javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) (/usr/lib/libservletapi5-5.0.30.jar.so)
filters.SetCharacterEncodingFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) (Unknown Source)
org.apache.catalina.valves.ErrorReportValve.invoke(org.apache.catalina.Request, org.apache.catalina.Response, org.apache.catalina.ValveContext) (/usr/lib/libcatalina-5.0.30.jar.so)
org.apache.coyote.tomcat5.CoyoteAdapter.service(org.apache.coyote.Request, org.apache.coyote.Response) (/usr/lib/libcatalina-5.0.30.jar.so)
org.apache.jk.server.JkCoyoteHandler.invoke(org.apache.jk.core.Msg, org.apache.jk.core.MsgContext) (Unknown Source)
org.apache.jk.common.HandlerRequest.invoke(org.apache.jk.core.Msg, org.apache.jk.core.MsgContext) (Unknown Source)
org.apache.jk.common.ChannelSocket.invoke(org.apache.jk.core.Msg, org.apache.jk.core.MsgContext) (Unknown Source)
org.apache.jk.common.ChannelSocket.processConnection(org.apache.jk.core.MsgContext) (Unknown Source)
org.apache.jk.common.SocketConnection.runIt(java.lang.Object[]) (Unknown Source)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run() (/tmp/libtomcat-util-5.0.30.jar.somy4xa2.so)
java.lang.Thread.run() (/usr/lib/libgcj.so.6.0.0)


原因

java.lang.NoClassDefFoundError: util.LoginDAO
java.lang.Class.initializeClass() (/usr/lib/libgcj.so.6.0.0)
action.LoginMappingDispatchAction.check(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) (Unknown Source)
java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (/usr/lib/libgcj.so.6.0.0)
org.apache.struts.actions.DispatchAction.dispatchMethod(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String) (Unknown Source)
org.apache.struts.actions.DispatchAction.execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) (Unknown Source)
org.apache.struts.actions.MappingDispatchAction.execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) (Unknown Source)
org.apache.struts.action.RequestProcessor.processActionPerform(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.apache.struts.action.Action, org.apache.struts.action.ActionForm, org.apache.struts.action.ActionMapping) (Unknown Source)
org.apache.struts.action.RequestProcessor.process(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) (Unknown Source)
org.apache.struts.action.ActionServlet.process(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) (Unknown Source)
org.apache.struts.action.ActionServlet.doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) (Unknown Source)
javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) (/usr/lib/libservletapi5-5.0.30.jar.so)
javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) (/usr/lib/libservletapi5-5.0.30.jar.so)
filters.SetCharacterEncodingFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) (Unknown Source)
org.apache.catalina.valves.ErrorReportValve.invoke(org.apache.catalina.Request, org.apache.catalina.Response, org.apache.catalina.ValveContext) (/usr/lib/libcatalina-5.0.30.jar.so)
org.apache.coyote.tomcat5.CoyoteAdapter.service(org.apache.coyote.Request, org.apache.coyote.Response) (/usr/lib/libcatalina-5.0.30.jar.so)
org.apache.jk.server.JkCoyoteHandler.invoke(org.apache.jk.core.Msg, org.apache.jk.core.MsgContext) (Unknown Source)
org.apache.jk.common.HandlerRequest.invoke(org.apache.jk.core.Msg, org.apache.jk.core.MsgContext) (Unknown Source)
org.apache.jk.common.ChannelSocket.invoke(org.apache.jk.core.Msg, org.apache.jk.core.MsgContext) (Unknown Source)
org.apache.jk.common.ChannelSocket.processConnection(org.apache.jk.core.MsgContext) (Unknown Source)
org.apache.jk.common.SocketConnection.runIt(java.lang.Object[]) (Unknown Source)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run() (/tmp/libtomcat-util-5.0.30.jar.somy4xa2.so)
java.lang.Thread.run() (/usr/lib/libgcj.so.6.0.0)

まつじん
ベテラン
会議室デビュー日: 2005/12/02
投稿数: 54
投稿日時: 2007-01-19 10:01
すみません。
アプリケーションサーバの
記述し忘れました。
tomcat5.5を使っています。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-01-19 10:49
「・・みたいなこと」、と確証がないのであれば他の人が見れば違う解釈になるかもしれないということですよね?
まず参照したソースのリンクを張ってはいかがでしょうか?

"/usr/lib/libgcj.so.6.0.0” などとあるので、libgcj で起動しているのは間違いなさそうですね。
.bash_profile、.bashrc ではなく Tomcat の起動スクリプトを確認してはいかがでしょう。
#rootで起動している!?!?
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2007-01-19 10:56
るぱんです。

Eclipse使ってるって事は無いのかな?
まつじん
ベテラン
会議室デビュー日: 2005/12/02
投稿数: 54
投稿日時: 2007-01-19 11:05
インギさん、るぱんさん、返答ありがとうございます。
インギさん>>
参照したリンクを保存していませんでしたので、また調べて
分かり次第載せたいと思います。
Tomcatの起動スクリプトは確認していませんでしたので
確認したいと思います。
開発環境はrootで起動しています。
本番は別のユーザで起動をかけています。
るぱんさん>>
はい。
eclipse3.2を使っています。
前回のプロジェクトでは3.0.1を使っていたのですが
これが原因でもあるのでしょうか?
まつじん
ベテラン
会議室デビュー日: 2005/12/02
投稿数: 54
投稿日時: 2007-01-19 11:44
eclipseのバージョンを前のプロジェクト使用していた3.0.1に戻して、tomcatプロジェクトでwarファイルを作成し、サーバーにあげたら動くようになりました。
理由はまだ分かりませんが、みなさんありがとうございました。

るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2007-01-19 11:54
るぱんです。

Eclipseの
Window→preferences→java→compiler
ウィンドウ→設定→java→コンパイラー

Eclipseが認識しているJavaのSDKのバージョンが不整合って話のような気がします。
確認してみて下さい。

[追記]
Linux Squareの投稿はマルチポストという意味でマナー違反です。
今気がつきましたけど、あまりよろしくないと思います。

回答されてるのでよしとしますが、
記述が根本解決ではないので、次に見た人は何が原因だったか意味不明ですよ。

次からは、落ち着いて投稿してみて下さい。
[/追記]

[ メッセージ編集済み 編集者: るぱん 編集日時 2007-01-19 11:58 ]
まつじん
ベテラン
会議室デビュー日: 2005/12/02
投稿数: 54
投稿日時: 2007-01-19 12:26
るぱんさん、ありがとうございます。
あと、マルチポストの件、失礼しました。
今後、気をつけたいと思います。
1

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