簡體   English   中英

無法通過Eclipse從Tomcat服務器重新連接到Derby

[英]Unable to reconnect to Derby from Tomcat server started via Eclipse

我在Win 7上運行,使用Eclipse 4.2在Tomcat 7服務器上啟動Web應用程序並使用Derby數據庫。 我嘗試了許多方法,但始終遇到一個常見問題:

  • 第一次啟動並運行時一切正常。
  • 更改后重新部署應用程序時,所有數據庫連接都將掛起(任何類型的重新啟動)。
  • 如果我停止Eclipse並重新啟動Eclipse,則可以解決問題,並且下次運行可以再次正常運行。

在進行了一些調查之后,似乎出現問題是Derby端口(1527)沒有從服務器的一次執行釋放到另一次執行。 這對我來說很奇怪,因為Derby是由Tomcat實例啟動的,而Tomcat實例是一個單獨的javaw進程。

我試過了:

  • 將Derby連接配置為Tomcat資源
  • 在我的代碼中建立連接(而不是通過Tomcat資源)
  • 嵌入式和網絡驅動程序
  • 在Tomcat服務器啟動和關閉時從Servlet啟動/停止網絡驅動程序
  • 在Tomcat關閉時通過servlet關閉嵌入式驅動程序

同樣,每種方法在第一次連接時都可以正常工作。

另一個似乎不相關的症狀(除了作為關閉是否正確完成的可能指示)以外,我的數據庫的db.lck文件從未刪除。 但是,它是否存在與我是否可以重新連接無關(只有停止/啟動蝕才有影響)。

任何見識將不勝感激。 謝謝!

經過進一步調查后,我將其稱為: 無法為連接URL'null'創建類''的JDBC驅動程序:我不理解此異常 這不是完全相同的事情,但是該解決方案(創建META-INF / context.xml)使它能夠繼續失敗的呼叫而不是掛起,這是一個重大改進,表明它在很大程度上與之相關。

我終於弄清楚了。 事實證明,我在Tomcat的lib文件夾(對於Tomcat) 我的Eclipse中的應用程序的部署程序集中(而不是僅在構建路徑中)有derby jars。 因此,Tomcat使用內置庫,而我的應用程序使用嵌入式庫,這導致了沖突。 將這些庫保留為Tomcat的一部分並從我的war文件中刪除它們可以完全解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM