- PR -

useBeanで「classが見つからない」エラーとなります。

投稿者投稿内容
kira
会議室デビュー日: 2004/11/15
投稿数: 11
投稿日時: 2004-11-15 19:01
はじめまして、kiraと申します。

 本番環境で稼動しているシステムがあり、テストサーバで同じ環境を作る
 ため、各ソフトのバージョンも同じものをインストールしました。
 しかし、下記の場合にうまく動かず困っています。 

 各サーブレット、JSPは本番稼動中のものをコピーし
 修正を加えていないのでソースコードには原因がないと考えています。
 
 CLASSPATHも本番と同じように設定しております。

 原因として考えられることをご存知の方はいらっしゃいません
 でしょうか。
 
 掲示板投稿も、JAVAも初心者のため、情報の提示に不備がありましたら
ご指摘下さい。

<環境>
 windows2000 server
 java2sdk1.4.0_01
 tomcat3.3.1a
Apache1.3.26 

tomcat3_3_1
|__webapps
|__check
|__WEB-INF
| |__classes
| |__ b_tools
| | |__ B_Renraku.java
| | |__ B_rrr.java
| |__ tools
| | |__ T_Utilities.java
       |   |     --> public static final String SVT_DIR = "/check/servlet/";
| |
| |__ XXX.java
| |__ YYY.java
| |__ t_init.java
| ・
       |   ・
|__menu.jsp
|__t_form1.jsp

        ・

menu.jspからt_form1.jspへ下記の順で遷移するときにエラーがでます。
1)menu.jsp
response.encodeURL(T_Utilities.SVT_DIR + "t_Init?Recog=on")

2)t_Init.java
res.sendRedirect("../t_form1.jsp");

3)t_form1.jsp
<jsp:useBean id="ren_inf" scope="session" class="B_Renraku" />


<サーバで実行した結果>
2004-11-12 09:58:13 - Ctx(/check) : Exception in R( /check + /t_form1.jsp + null
) - javax.servlet.ServletException: Cannot create bean of class B_Renraku
at t_form1_1._jspService(t_form1_1.java:154)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
at javax.servlet.http.HttpServlet.service(HttpServlet.java)
at org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java:574)
at org.apache.tomcat.core.Handler.invoke(Handler.java:322)
at org.apache.tomcat.core.Handler.service(Handler.java:235)
at org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:485)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:917)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:833
)
at org.apache.tomcat.modules.server.Ajp13Interceptor.processConnection(Ajp13Interceptor.java:341)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:494)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:516)
at java.lang.Thread.run(Thread.java:536)
Root cause:
java.lang.ClassNotFoundException: B_Renraku
at org.apache.tomcat.util.depend.DependClassLoader.loadClassInternal1(DependClassLoader.java:186)
at org.apache.tomcat.util.depend.DependClassLoader12$1.run(DependClassLoader12.java:92)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.tomcat.util.depend.DependClassLoader12.loadClass(DependClassLoader12.java:90)
at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
at java.beans.Beans.instantiate(Beans.java:187)
at java.beans.Beans.instantiate(Beans.java:48)
at t_form1_1._jspService(t_form1_1.java:152)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
at javax.servlet.http.HttpServlet.service(HttpServlet.java)
at org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java:574)
at org.apache.tomcat.core.Handler.invoke(Handler.java:322)
at org.apache.tomcat.core.Handler.service(Handler.java:235)
at org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:485)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:917)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:833)
at org.apache.tomcat.modules.server.Ajp13Interceptor.processConnection(Ajp13Interceptor.java:341)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:494)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:516)
at java.lang.Thread.run(Thread.java:536)

2004-11-12 09:58:13 - ErrorHandler: Error loop for R( /check + /t_form1.jsp + nu
ll) error javax.servlet.ServletException: Cannot create bean of class B_Renraku


<ローカルから実行した結果>
 404エラー
 アドレスバー・・http://localhost/check/t_form1.jsp
        
ちなみに
※server.xml に
 <Context path="/check"
  docBase="webapps/check"
  crossContext="false"
  debug="0"
  reloadable="true">
 </Context>
を追加しても結果は同じでした。

よろしくお願いします。
もぐ
会議室デビュー日: 2002/12/06
投稿数: 13
投稿日時: 2004-11-15 21:28
Beanとして使うクラスは.javaファイルではなく、.classファイルや.jarファイルを配置するのではないでしょうか。
kira
会議室デビュー日: 2004/11/15
投稿数: 11
投稿日時: 2004-11-15 21:40
引用:

もぐさんの書き込み (2004-11-15 21:28) より:
Beanとして使うクラスは.javaファイルではなく、.classファイルや.jarファイルを配置するのではないでしょうか。


もぐさん、ご指摘ありがとうございます。

.javaと同ディレクトリに.classファイルがあります。

※ディレクトリ構造の図が壊れてしまいみにくくてすみません<(_ _)>
影フリー
常連さん
会議室デビュー日: 2004/11/12
投稿数: 39
お住まい・勤務地: 東京都
投稿日時: 2004-11-16 10:01
<jsp:useBean id="ren_inf" scope="session" class="b_tools.B_Renraku" />

kira
会議室デビュー日: 2004/11/15
投稿数: 11
投稿日時: 2004-11-16 10:53
引用:

影フリーさんの書き込み (2004-11-16 10:01) より:
<jsp:useBean id="ren_inf" scope="session" class="b_tools.B_Renraku" />




影フリーさん、ありがとうございます。
試したところ、エラーはなくなりましたが、画面がそのままでt_form1の
画面が表示されません。
また、本番環境では「b_tools」がなくても動作しているので、
やはり疑問が残ります。
tomcat、apacheのインストール、連携のあたりでミスをしている可能性が
あるのでしょうか。
影フリー
常連さん
会議室デビュー日: 2004/11/12
投稿数: 39
お住まい・勤務地: 東京都
投稿日時: 2004-11-16 11:09
tomcat3_3_1
|__webapps
|__check
|__WEB-INF
| |__classes
| |__ b_tools
| | |__ B_Renraku.java
| | |__ B_rrr.java

じゃなくて

tomcat3_3_1
|__webapps
|__check
 |__WEB-INF
 | |__classes
 |  |__ b_tools
 |  | |__ B_Renraku.java
 |  | |__ B_rrr.java

すべきでしょう。

[ メッセージ編集済み 編集者: 影フリー 編集日時 2004-11-16 11:11 ]
kira
会議室デビュー日: 2004/11/15
投稿数: 11
投稿日時: 2004-11-16 11:22
引用:

影フリーさんの書き込み (2004-11-16 11:09) より:
tomcat3_3_1
|__webapps
|__check
 |__WEB-INF
 | |__classes
 |  |__ b_tools
 |  | |__ B_Renraku.java
 |  | |__ B_rrr.java

すべきでしょう。

[ メッセージ編集済み 編集者: 影フリー 編集日時 2004-11-16 11:11 ]



たびたびすみません。表示が壊れてしまっていて・・
ディレクトリは影フリーさんのおっしゃるとおりになっております。
影フリー
常連さん
会議室デビュー日: 2004/11/12
投稿数: 39
お住まい・勤務地: 東京都
投稿日時: 2004-11-16 11:36
check/WEB-INF/web.xmlも本番と同じですか?

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