給大家的好日子,在glassfish中導入derby驅動程序的問題
我在使Glassfish 3.1.2看到一些導入的罐子時遇到一些問題。因爲這我我的畢業設計項目我有約束。我不能使用Glassfish,Netbeans以外的其他任何東西,我也不能使用Maven,Hibernate,Ear或者其他任何東西。
我正在使用嵌入式Derby驅動程序。 (我可以使用另一個數據庫,但在我的試驗中問題依然存在)。
我已經寫了一些普通的Java代碼連接到DB:
try{
Connection c = DriverManager.getConnection(URL, USER, PWD);
Statement st = c.createStatement();
st.executeUpdate("CREATE TABLE Users" +
" (ACCOUNT VARCHAR(20) PRIMARY KEY," +
" PWD VARCHAR(20) NOT NULL," +
" USERTYPE INTEGER NOT NULL)");
...
}
catch (SQLException x){
System.out.println(x);
}
這是醜陋的,它不使用連接池,它的工作原理。我會稍後使用它們。 很明顯,我不得不將derbyclient.jar添加到庫。
,就會出現問題,當我嘗試使用這種方法的Servlet中:
protected void processRequest(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
try{
DriverManager.registerDriver(org.apache.derby.jdbc.ClientDriver);
Connection c = DriverManager.getConnection(dbUsr, pwd, url);
Statement st = c.createStatement();
ResultSet rs = st.executeQuery(query);
...
}catch (SQLException e){
ServletException e1 = new ServletException(e.getMessage());
throw e1;
}
我不能編譯的servlet,因爲「包org.apache.derby.jdbc不存在」。
我可以提供一些更多的信息(20小時以上的閱讀和不成功的試驗):
- 該servlet和Java代碼在同一個項目,所以derbyclient.jar中應當由他們兩個可以看出。
- 當我編寫org.apache.berby時,netbeans向我展示了用於自動完成的包導航器,所以在某處它知道有一個jar。
- 我試圖把裏面請將derbyclient.jar:
- 的Glassfish/GlassFish中/域/域1/lib目錄
- 的Glassfish/GlassFish中/域/域1/lib/ext目錄
- 的Glassfish/GlassFish的/ lib目錄
- 嘗試沒有驅動程序註冊,java代碼沒有它的工作,但我得到「javax.servlet.ServletException:找不到適合的應用程序驅動程序」。我覺得這是合理的。
我在我的智慧結束。有人關心幫助嗎?
編輯:
昨天我得到的消息從老師:她指責NetBeans IDE中輸球軌道罐子。這似乎是一個已知的錯誤。
熱烈鼓勵我切換到tomcat服務器。我一定會嘗試,我會繼續努力解決這個問題。還有其他好點子嗎?
提供錯誤堆棧跟蹤 – 2012-07-24 11:11:38