Eclipse、Maven、Tomcatの助けを借りてJavaプロジェクト内にデプロイするJSPファイルがあります。私はいくつかの他のJSPファイルを、これとほぼ同じですが、別の操作を実行しています。私は、ページに行くときとにかく、私はこれを与えてくれた:SQLException:無効な列名...?
org.apache.jasper.JasperException: An exception occurred processing JSP page /entertime2.jsp at line 106
103: rsBug = psBug.executeQuery();
104:
105: while(rsBug.next()) {
106: Bug b = new Bug(rsBug);
107: out.println("<option value='" + b.get(Bug.BUG_ID) + "'>" + b.get(Bug.TITLE) + "</option>");
108: }
109: rsBug.close();
root cause
javax.servlet.ServletException: java.sql.SQLException: Invalid column name ixPersonOpenedBy.
バグは、結果セットに取ることができますカスタムクラスである - rsBug
- と、次の操作を実行します。
setValue(Bug.BUG_ID,rs.getString(Bug.BUG_ID));
setValue(Bug.PERSON_OPENED_BY,rs.getString(Bug.PERSON_OPENED_BY));
setValue(Bug.PERSON_ASSIGNED_TO,rs.getString(Bug.PERSON_ASSIGNED_TO));
setValue(Bug.TITLE, rs.getString(Bug.TITLE));
setValue(Bug.PROJECT_ID,rs.getString(Bug.PROJECT_ID));
ここで、BUG_ID、PERSON_OPENED_BY、PERSON_ASSIGNED_TO、TITLE、およびPROJECT_IDはすべて、データベースに格納されているBugテーブル内の列名に対応するBugクラスの文字列メンバーです。さて、テーブルにはixPersonOpenedBy
の列がありますが、以前は何の問題も与えていません。私はそれが実行しようとするSQL文と何か関係があるかどうかはわかりませんが、私は他のJSPの前に同じ文を使用しています。さらに、このエラーはプロジェクトの以前の展開では表示されませんでした。私は無関係な変数にタイプミスがあり、一度修正されると、この男はどこにも突然現れなかった。
とにかく、誰かが、なぜこの列が "有効"になっているのを知っているときにこのエラーが出るのか理解できますか?データベース内のJSP、Bug Class、またはBug Tableの詳細を表示する必要がある場合は、私に知らせてください。どんな助けもありがとう。
EDIT:私が使用している2つのSQL文は次のとおりですが、いずれかの問題が発生しているかどうかはわかりません。
psBug.setInt(1, Integer.valueOf(personId).intValue());
あなたはSQL文を投稿できますか? – aldrin
確かです。私は元の投稿に私が使っているステートメントの両方を追加しました。 –
そして、好ましくはcreate tableステートメントとBug.PERSON_OPENED_BYの値。 – extraneon