- PR -

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

投稿者投稿内容
kira
会議室デビュー日: 2004/11/15
投稿数: 11
投稿日時: 2004-11-16 11:54
引用:

影フリーさんの書き込み (2004-11-16 11:36) より:
check/WEB-INF/web.xmlも本番と同じですか?


はい、同じです。

<?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/12
投稿数: 39
お住まい・勤務地: 東京都
投稿日時: 2004-11-16 12:56
すべてが本番と同じだったらおかしいですね。
最後にApacheとの連動を見てください。
Apacheのconfの中にあるhttpd.confも同じくなっているかどうかを・・
これ以上は私も限界ですね。すみません。
kira
会議室デビュー日: 2004/11/15
投稿数: 11
投稿日時: 2004-11-16 14:07
引用:

影フリーさんの書き込み (2004-11-16 12:56) より:
すべてが本番と同じだったらおかしいですね。
最後にApacheとの連動を見てください。
Apacheのconfの中にあるhttpd.confも同じくなっているかどうかを・・
これ以上は私も限界ですね。すみません。



httpd.confも、「ServerName」以外は同じです。。
いろいろとご意見いただいてありがとうございます。
また気づかれた事がありましたら、よろしくお願いします。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-11-16 14:39
気になる点がいくつかあるので、差し支えない範囲でt_form1.jspを載せてみてもらえない
でしょうか。それから、JDK1.4とありますが、実行環境も1.4ですか?
kira
会議室デビュー日: 2004/11/15
投稿数: 11
投稿日時: 2004-11-16 16:10
引用:

ukさんの書き込み (2004-11-16 14:39) より:
気になる点がいくつかあるので、差し支えない範囲でt_form1.jspを載せてみてもらえない
でしょうか。それから、JDK1.4とありますが、実行環境も1.4ですか?



まず、実行環境も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);
%>
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-11-16 19:49
まず、useBeanのclass属性には完全修飾名を指定する必要があります。もし今動いていたと
しても、バージョンアップなりアプリケーションサーバを変えたときに動かなくなる可能性が
あります。

それからB_Renrakuオブジェクトはsessionスコープで宣言されているので、おそらく前の
サーブレットでsessionオブジェクトに値を入れてあるのではないかと思うのですが、そちらは
きちんと動作しているのでしょうか。また、サーブレットが実行されたときとJSPが実行された
ときで、同一セッションになっているでしょうか。

その辺が気になるところです。
kira
会議室デビュー日: 2004/11/15
投稿数: 11
投稿日時: 2004-11-16 23:16
引用:

ukさんの書き込み (2004-11-16 19:49) より:
まず、useBeanのclass属性には完全修飾名を指定する必要があります。もし今動いていたと
しても、バージョンアップなりアプリケーションサーバを変えたときに動かなくなる可能性が
あります。


なるほど、そうなんですか。。
わかりました。このシステムにこれからも修正を加えていくので、
そのあたりも修正していくようにしたいと思います。

引用:

それからB_Renrakuオブジェクトはsessionスコープで宣言されているので、おそらく前の
サーブレットでsessionオブジェクトに値を入れてあるのではないかと思うのですが、そちらは
きちんと動作しているのでしょうか。また、サーブレットが実行されたときとJSPが実行された
ときで、同一セッションになっているでしょうか。

その辺が気になるところです。



サーブレットと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;
}
kira
会議室デビュー日: 2004/11/15
投稿数: 11
投稿日時: 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で、セッションが変わることがあるのでしょうか。。

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