- - PR -
useBeanで「classが見つからない」エラーとなります。
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-11-16 11:54
はい、同じです。 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> </web-app> | ||||||||
|
投稿日時: 2004-11-16 12:56
すべてが本番と同じだったらおかしいですね。
最後にApacheとの連動を見てください。 Apacheのconfの中にあるhttpd.confも同じくなっているかどうかを・・ これ以上は私も限界ですね。すみません。 | ||||||||
|
投稿日時: 2004-11-16 14:07
httpd.confも、「ServerName」以外は同じです。。 いろいろとご意見いただいてありがとうございます。 また気づかれた事がありましたら、よろしくお願いします。 | ||||||||
|
投稿日時: 2004-11-16 14:39
気になる点がいくつかあるので、差し支えない範囲でt_form1.jspを載せてみてもらえない
でしょうか。それから、JDK1.4とありますが、実行環境も1.4ですか? | ||||||||
|
投稿日時: 2004-11-16 16:10
まず、実行環境も1.4です。 t_form1.jspを載せます。長くなりますがよろしくお願いします。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− <%@ page contentType="text/html; charset=SJIS" %> <%@ page import="java.io.*" %> <%@ page import="javax.servlet.*" %> <%@ page import="javax.servlet.http.*" %> <%@ page import="java.sql.*" %> <%@ page import="java.text.*" %> <%@ page import="tools.*" %> <%@ page import="java.util.regex.*" %> <%@ page import="b_tools.*" %> <!doctype html public "-//W3C//DTD HTML 3.2//EN"> <% T_Check_Session.Check(request, response); // T_Connect db = new T_Connect(); // Connection con = db.DBConnect(); // Null対策 if(session.getAttribute("t1mes1") == null){session.setAttribute("t1mes1","");} if(session.getAttribute("t1mes2") == null){session.setAttribute("t1mes2","");} if(session.getAttribute("t1mes3") == null){session.setAttribute("t1mes3","");} %> <jsp:useBean id="ren_inf" scope="session" class="B_Renraku" /> <jsp:useBean id="shop_inf" scope="session" class="B_Shop" /> <jsp:useBean id="user_inf" scope="session" class="B_User" /> <html> <head> <meta http-equiv="Content-type" content="text/html;charset=Shift_JIS"> <title>連絡表登録<%= ((session.getAttribute("Recog") != null && session.getAttribute("Recog").equals("off")) ? "(承認なし)" : "") %></title> <SCRIPT language="javascript" src="common.js"></SCRIPT> <SCRIPT language="javascript"> <!-- function date_change( strVal, selObj ) { var reVal = dateCheck2( strVal ); if (isNaN(reVal)) { selObj.value = reVal; } } function OnTransmit() { var df = document.UpperForm; df.s_year.value = df.s_year.value.replace(/\ /g,""); df.s_month.value = df.s_month.value.replace(/\ /g,""); df.s_day.value = df.s_day.value.replace(/\ /g,""); df.s_year.value = df.s_year.value.replace(/\ /g,""); df.s_month.value = df.s_month.value.replace(/\ /g,""); df.s_day.value = df.s_day.value.replace(/\ /g,""); df.s_year.value = df.s_year.value.replace(/\./g,""); df.s_month.value = df.s_month.value.replace(/\./g,""); df.s_day.value = df.s_day.value.replace(/\./g,""); df.s_year.value = df.s_year.value.replace(/\+/g,""); df.s_month.value = df.s_month.value.replace(/\+/g,""); df.s_day.value = df.s_day.value.replace(/\+/g,""); if (df.s_year.value.length == 1) { df.s_year.value = "200" + df.s_year.value; } if (df.s_year.value.length == 2) { df.s_year.value = "20" + df.s_year.value; } if (df.s_year.value.length == 3) { df.s_year.value = "2" + df.s_year.value; } if (df.s_month.value.length == 1) { df.s_month.value = "0" + df.s_month.value; } // 月の入力が1桁の場合2桁に加工 if (df.s_day.value.length == 1) { df.s_day.value = "0" + df.s_day.value; } // 日の入力が1桁の場合2桁に加工 var year = df.s_year.value; var mon = df.s_month.value; var day = df.s_day.value; strDate = year + '/' + mon + '/' + day; // 日のチェック if (strDate.length != 10) { alert("「日」の入力形式に誤りがあります。");df.s_year.focus();return; } else { if (dateCheck(strDate) < 0) {alert("「日」の入力形式に誤りがあります。");df.s_year.focus();return; } } df.dm_year.value = df.dm_year.value.replace(/\ /g,""); df.dm_month.value = df.dm_month.value.replace(/\ /g,""); df.dm_day.value = df.dm_day.value.replace(/\ /g,""); df.dm_year.value = df.dm_year.value.replace(/\ /g,""); df.dm_month.value = df.dm_month.value.replace(/\ /g,""); df.dm_day.value = df.dm_day.value.replace(/\ /g,""); df.dm_year.value = df.dm_year.value.replace(/\./g,""); df.dm_month.value = df.dm_month.value.replace(/\./g,""); df.dm_day.value = df.dm_day.value.replace(/\./g,""); df.dm_year.value = df.dm_year.value.replace(/\+/g,""); df.dm_month.value = df.dm_month.value.replace(/\+/g,""); df.dm_day.value = df.dm_day.value.replace(/\+/g,""); if (df.dm_year.value.length == 1) { df.dm_year.value = "200" + df.dm_year.value; } if (df.dm_year.value.length == 2) { df.dm_year.value = "20" + df.dm_year.value; } if (df.dm_year.value.length == 3) { df.dm_year.value = "2" + df.dm_year.value; } if (df.dm_month.value.length == 1) { df.dm_month.value = "0" + df.dm_month.value; } // 月の入力が1桁の場合2桁に加工 if (df.dm_day.value.length == 1) { df.dm_day.value = "0" + df.dm_day.value; } // 日の入力が1桁の場合2桁に加工 var year = df.dm_year.value; var mon = df.dm_month.value; var day = df.dm_day.value; strDate = year + '/' + mon + '/' + day; // 開始日のチェック if (strDate.length != 10) { alert("「開始日」の入力形式に誤りがあります。");df.dm_year.focus();return; } else { if (dateCheck(strDate) < 0) {alert("「開始日」の入力形式に誤りがあります。");df.dm_year.focus();return; } } df.c_year.value = df.c_year.value.replace(/\ /g,""); df.c_month.value = df.c_month.value.replace(/\ /g,""); df.c_day.value = df.c_day.value.replace(/\ /g,""); df.c_year.value = df.c_year.value.replace(/\ /g,""); df.c_month.value = df.c_month.value.replace(/\ /g,""); df.c_day.value = df.c_day.value.replace(/\ /g,""); df.c_year.value = df.c_year.value.replace(/\./g,""); df.c_month.value = df.c_month.value.replace(/\./g,""); df.c_day.value = df.c_day.value.replace(/\./g,""); df.c_year.value = df.c_year.value.replace(/\+/g,""); df.c_month.value = df.c_month.value.replace(/\+/g,""); df.c_day.value = df.c_day.value.replace(/\+/g,""); if (df.c_year.value.length == 1) { df.c_year.value = "200" + df.c_year.value; } if (df.c_year.value.length == 2) { df.c_year.value = "20" + df.c_year.value; } if (df.c_year.value.length == 3) { df.c_year.value = "2" + df.c_year.value; } if (df.c_month.value.length == 1) { df.c_month.value = "0" + df.c_month.value; } // 月の入力が1桁の場合2桁に加工 if (df.c_day.value.length == 1) { df.c_day.value = "0" + df.c_day.value; } // 日の入力が1桁の場合2桁に加工 var year = df.c_year.value; var mon = df.c_month.value; var day = df.c_day.value; strDate = year + '/' + mon + '/' + day; // 終了日のチェック if (strDate.length != 10) { alert("「終了日」の入力形式に誤りがあります。");df.c_year.focus();return; } else { if (dateCheck(strDate) < 0) {alert("「終了日」の入力形式に誤りがあります。");df.c_year.focus();return; } } if(eval(df.dm_year.value + df.dm_month.value + df.dm_day.value) > eval(df.c_year.value + df.c_month.value + df.c_day.value)){ alert("(開始)が(終了)を越えています。"); df.dm_year.focus(); return false; } df.post.value = trim(df.post.value); // 空白の除去 if(getLength(df.post.value) != 3){ alert("「所属」の入力形式に誤りがあります。"); df.post.focus(); return false; } ・ ・ ・< 入力チェック > ・ // 値を有効にするため無効を解除 df.post.disabled=false; // 登録 df.submit() ; return true ; } // --> </script> </head> <BODY bgcolor="#ffffff"> <!--Header Start--> <table border="0" cellpadding="0" cellspacing="0" width="450"> <tr> <td rowspan="3" bgcolor="#000000" width="20"><img src="<%= T_Utilities.IMG_DIR%>dot.gif" width="15" height="1" border="0"></td> <!--Header(画像) Start--> <td nowrap width="430"><b>連絡表登録<%= ((session.getAttribute("Recog") != null && session.getAttribute("Recog").equals("off")) ? "(承認なし)" : "") %></b></td> <!--Header(画像) End--> </tr> <tr> <td bgcolor="#000000"><img src="<%= T_Utilities.IMG_DIR%>dot.gif" width="1" height="1" border="0"></td> </tr> <tr> <td> <table border="0" cellpadding="0" cellspacing="7"> <tr> <!--Header(説明) Start--> <td nowrap> <font size="-1">連絡表を登録します。</font> </td> <!--Header(説明) End--> </tr> </table> </td> </tr> </table> <!--Header End--> <font color="red"> <% if(session.getAttribute("mes") != "" && session.getAttribute("mes") != null){ out.println(session.getAttribute("mes")); } %> </font> <br> <!--本文 Start--> <form name="UpperForm" action="servlet/t_form1" method="POST"> <INPUT type="hidden" name="NEXT_ACTION" value=""> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" width="550"> <TR> <TD> <TABLE BORDER="0" CELLPADDING="3" CELLSPACING="1" width="550"> <tr> <td bgcolor="#000066" width="550" colspan="2"><font color="#FFFFFF" size="2">◆タイトル1</font></td> </tr> <tr> <td bgcolor="#CCCC99" width="100"><font size="-1">日</font></td> <td bgcolor="#ffffff" width="450" colspan="2"> <font size="-1"> <INPUT TYPE="text" NAME="s_year" SIZE="4" MAXLENGTH="4" style="ime-mode:disabled;" value="<%=ren_inf.get_F_CHECK_DAY_YYYY()%>">年 <INPUT TYPE="text" NAME="s_month" SIZE="2" MAXLENGTH="2" style="ime-mode:disabled;" value="<%=ren_inf.get_F_CHECK_DAY_MM()%>">月 <INPUT TYPE="text" NAME="s_day" SIZE="2" MAXLENGTH="2" style="ime-mode:disabled;" value="<%=ren_inf.get_F_CHECK_DAY_DD()%>">日 </font><BR><FONT SIZE="-2">例/2002年01月01日</FONT> </td> </tr> <tr> <TD BGCOLOR="#CCCC99" width="100"><font size="-1">締め日</font></TD> <TD BGCOLOR="#ffffff" width="450" nowrap colspan="2"> <font size="-1"> <INPUT TYPE="text" NAME="dm_year" SIZE="4" MAXLENGTH="4" style="ime-mode:disabled;" value="<%=ren_inf.get_F_CLOSE_F_DAY_YYYY()%>">年 <INPUT TYPE="text" NAME="dm_month" SIZE="2" MAXLENGTH="2" style="ime-mode:disabled;" value="<%=ren_inf.get_F_CLOSE_F_DAY_MM()%>">月 <INPUT TYPE="text" NAME="dm_day" SIZE="2" MAXLENGTH="2" style="ime-mode:disabled;" value="<%=ren_inf.get_F_CLOSE_F_DAY_DD()%>">日 〜 <INPUT TYPE="text" NAME="c_year" SIZE="4" MAXLENGTH="4" style="ime-mode:disabled;" value="<%=ren_inf.get_F_CLOSE_DAY_YYYY()%>">年 <INPUT TYPE="text" NAME="c_month" SIZE="2" MAXLENGTH="2" style="ime-mode:disabled;" value="<%=ren_inf.get_F_CLOSE_DAY_MM()%>">月 <INPUT TYPE="text" NAME="c_day" SIZE="2" MAXLENGTH="2" style="ime-mode:disabled;" value="<%=ren_inf.get_F_CLOSE_DAY_DD()%>">日 </font><BR><FONT SIZE="-2">例/2002年01月01日</FONT> </td> </tr> <tr> <TD BGCOLOR="#CCCC99" width="100"><font size="-1">所属</font></TD> <TD BGCOLOR="#ffffff" width="450"> <font size="-1"> <INPUT TYPE="text" NAME="post" SIZE="3" MAXLENGTH="3" style="ime-mode:disabled;" <%if(ren_inf.get_F_RENRAKU_ID() != ""){%>disabled <%}%>value="<%=ren_inf.get_F_POST()%>"> </font> </TD> </tr> ・ ・< HTML画面表示 > ・ ・ <% //新規から遷移した場合戻るボタンを表示 if( T_Conv.getParam(session,"RTN_T_FORM1").equals("") ){ %> <INPUT TYPE="button" VALUE=" 戻る " onClick="window.location.href='menu.jsp';"> <font size=-1> </font> <% } if( ! shop_inf.get_F_SHOP_ID_F().equals("") && (session.getAttribute("t1mes1").equals(""))){ if( T_Conv.getParam(session,"RTN_T_FORM1").equals("") ){ %> <INPUT TYPE="button" VALUE=" t_form2へ " onClick="document.UpperForm.NEXT_ACTION.value='t_form2.jsp';OnTransmit();"> <INPUT TYPE="button" VALUE=" t_form3へ " onClick="document.UpperForm.NEXT_ACTION.value='t_form3.jsp';OnTransmit();"> <INPUT TYPE="button" VALUE=" t_form4へ " onClick="document.UpperForm.NEXT_ACTION.value='t_form4.jsp';OnTransmit();"> <% }else{ %> <font size=-1> </font> <INPUT TYPE="button" VALUE=" t_form2へ " onClick="document.UpperForm.NEXT_ACTION.value='t_form2.jsp';OnTransmit();"> <INPUT TYPE="button" VALUE=" t_form3へ " onClick="document.UpperForm.NEXT_ACTION.value='t_form3.jsp';OnTransmit();"> <INPUT TYPE="button" VALUE=" t_form4へ " onClick="document.UpperForm.NEXT_ACTION.value='<%=T_Conv.getParam(session,"RTN_T_FORM1")%>';OnTransmit();"> <% } } %> </font></p> </TD> </tr> </TABLE> </TD></TR></TABLE></form> <br> <%@ include file="footer.jsp" %> </body> </html> <% // セッションの初期化 session.setAttribute("t1mes1", "" ); session.setAttribute("t1mes2", "" ); session.setAttribute("t1mes3", "" ); session.setAttribute("mes", "" ); // db.DBDisconnect(con); %> | ||||||||
|
投稿日時: 2004-11-16 19:49
まず、useBeanのclass属性には完全修飾名を指定する必要があります。もし今動いていたと
しても、バージョンアップなりアプリケーションサーバを変えたときに動かなくなる可能性が あります。 それからB_Renrakuオブジェクトはsessionスコープで宣言されているので、おそらく前の サーブレットでsessionオブジェクトに値を入れてあるのではないかと思うのですが、そちらは きちんと動作しているのでしょうか。また、サーブレットが実行されたときとJSPが実行された ときで、同一セッションになっているでしょうか。 その辺が気になるところです。 | ||||||||
|
投稿日時: 2004-11-16 23:16
なるほど、そうなんですか。。 わかりました。このシステムにこれからも修正を加えていくので、 そのあたりも修正していくようにしたいと思います。
サーブレットとJSPが同一セッションになっているかはまだ確認中なのですが、 「前のサーブレット」も載せたいと思います。 ここの最後で「sendRedirect」しているのですが、このパス指定をURLすべてを記述すると (http://xxx.xxx.x.x/check/t_form1.jsp) 当然でしょうか、t_form1.jspは表示されます。 <t_Init.java> import java.io.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; import b_tools.*; import tools.*; public class t_Init extends HttpServlet { String MyName = "t_Init.java"; public void doPost(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException { tInit(req,res); } public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException { tInit(req,res); } public void tInit(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException { // // Session Check T_Check_Session.Check(req, res); // Init HttpSession session = req.getSession(true); B_Renraku ren_inf = new B_Renraku(); B_RenrakuDataIo rdkeio_lst = new B_RenrakuDataIo(); B_RenrakuDataIo rdkeix_lst = new B_RenrakuDataIo(); B_RenrakuDataIo tdisan_lst = new B_RenrakuDataIo(); B_Shop shop_inf = new B_Shop(); B_User user_inf = new B_User(); String Recog = T_Conv.getParam(req,"Recog"); ren_inf.set_F_SIWAKE_FLG("0"); // 検索系パラメータの削除 session.removeAttribute("search_url"); session.setAttribute("ren_inf",ren_inf); session.setAttribute("rdkeio_lst",rdkeio_lst); session.setAttribute("rdkeix_lst",rdkeix_lst); session.setAttribute("tdisan_lst",tdisan_lst); session.setAttribute("shop_inf",shop_inf); session.setAttribute("user_inf",user_inf); session.setAttribute("RTN_T_FORM1",""); session.setAttribute("RTN_T_FORM2",""); session.setAttribute("RTN_T_FORM3",""); session.setAttribute("RTN_T_FORM4",""); session.setAttribute("Recog",Recog); // セッションの初期化 session.setAttribute("mes",""); session.setAttribute("t1mes1", "" ); session.setAttribute("t1mes2", "" ); session.setAttribute("t1mes3", "" ); res.sendRedirect("../t_form1.jsp"); return; } public String getServletInfo(){ return MyName; } | ||||||||
|
投稿日時: 2004-11-18 16:28
確認が遅くなりまして、すみません。
同一セッションで動作しているか確認したところ・・ −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 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_tools.B_Renraku" /> −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 1)、2)は同じセッションですが、 3)では、新しいセッションになっているようです。 その後、また1)に戻り、1)、2)と同じセッションになります。 sendRedirectで、セッションが変わることがあるのでしょうか。。 |