0
我試圖爲只有一個servlet的簡單web項目實現連接池。但出於某種原因,我得到一個JdbcSQLException org.h2.jdbc.JdbcSQLException:錯誤[stderr](默認任務-4)未找到表「EMP」; 這是我第一次在Wildfly中配置連接池。經過一番研究,我仍然無法弄清楚如何解決這個問題。我猜可能somethig在我的Intelij項目中沒有正確配置。 我提出了以下步驟:使用PostgreSQL的Wildfly連接池。獲取JdbcSQLException
- 在Wildfly部署JDBC驅動程序(PostgreSQL相關9.4-1201.jdbc4.jar);
- 配置JDBC數據源(名稱:PostgresDS,JNDI:java:/ PostgresDS);
- 測試Wildfly中的連接(連接URL:jdbc:postgresql:// localhost:5433/sample_db);
- 成功連接到數據庫PostgresDS。
在的IntelliJ項目:
- 創建數據源(也稱爲PostgresDS),成功地連接到數據庫(網址爲:jdbc:在PostgreSQL://本地主機:5433/sample_db)。
但是當我試圖運行一個servlet時,會發生JdbcSQLException。
[2016-11-27 06:03:38,447] Artifact employees-jsp:war exploded: Artifact is deployed successfully
[2016-11-27 06:03:38,447] Artifact employees-jsp:war exploded: Deploy took 1 619 milliseconds
18:03:45,222 ERROR [stderr] (default task-4) org.h2.jdbc.JdbcSQLException: Таблица "EMP" не найдена
18:03:45,222 ERROR [stderr] (default task-4) Table "EMP" not found; SQL statement:
18:03:45,223 ERROR [stderr] (default task-4) SELECT * FROM emp [42102-173]
我在這裏錯過了什麼?我需要在項目中配置任何.xml文件嗎?
我會感激所有的提示,意見和批評。
這裏是servlet:
@WebServlet(name = "ServletDS", urlPatterns = {"/ServletEmp"})
public class ServletDS extends HttpServlet {
@Resource(name = "PostgresDS")
private DataSource dataSource;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Set up the Printwriter
PrintWriter out = response.getWriter();
response.setContentType("text/plain");
// Get a connection to the DB
Connection myConnection = null;
Statement myStatement = null;
ResultSet myResultSet = null;
try {
myConnection = dataSource.getConnection();
// Create a SQL statement
String sql = "SELECT * FROM emp";
myStatement = myConnection.createStatement();
// Execute SQL query
myResultSet = myStatement.executeQuery(sql);
// Process the result set
while (myResultSet.next()) {
String name = myResultSet.getString("ename");
out.println(name);
}
} catch (Exception exc) {
exc.printStackTrace();
}
}
}
「* Table」EMP「not found *」似乎對我很清楚。在連接到的數據庫中沒有表名「emp」。您通過創建表來修復此問題 –
postgresql JDBC驅動程序永遠不會拋出類型爲org.h2.jdbc.JdbcSQLException的異常。 H2數據庫驅動程序會這樣做。您的配置必須有問題。像往常一樣,發佈異常的完整堆棧跟蹤將有所幫助。 –
@a_horse_with_no_name如果數據庫中沒有表emp,我不會發表這個問題。它在那裏。 –