【发布时间】:2011-09-12 18:35:45
【问题描述】:
我有一个 JSP 文件,我在 Eclipse、Maven 和 Tomcat 的帮助下将其部署在 Java 项目中。我还有一些其他的 JSP 文件几乎与这个相同,尽管它们运行不同的操作。无论如何,当我转到页面时,我已经给出了这个:
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.
Bug 是一个自定义类,可以接收结果集 -- 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 类或数据库中的 Bug 表,请告诉我;任何帮助表示赞赏。
编辑:这是我正在使用的两个 SQL 语句,但我不确定是否有任何一个导致问题。
SELECT p.ixPerson, p.sFullName
FROM Person p, jwTeamMembers t
WHERE p.ixPerson = t.ixPerson
ORDER BY p.sFullName ASC
SELECT b.ixBug, b.sTitle
FROM Bug b, Person per, Project p, Area a, jwTime t, jwTeamMembers m, jwTeam jt, Status s, jwDivision d
WHERE per.ixPerson = t.ixPerson AND t.ixBug = b.ixBug AND b.ixProject = p.ixProject AND b.ixArea = a.ixArea
AND per.ixPerson = m.ixPerson AND m.ixTeam = jt.ixTeam AND b.ixStatus = s.ixStatus AND a.ixDivision *= d.ixDivision
AND (per.ixPerson = ?)
GROUP BY b.ixBug, b.sTitle
ORDER BY b.ixBug DESC
第二条语句中的参数填入:
psBug.setInt(1, Integer.valueOf(personId).intValue());
【问题讨论】:
-
可以发一下SQL语句吗?
-
当然可以。我在原始帖子中添加了我正在使用的两个语句。
-
最好是create table语句,以及Bug.PERSON_OPENED_BY的值。
-
您能否将 ixPersonOpenedBy 添加到您的第一个选择语句中?试试看:)