无法从通过Eclipse启动的Tomcat服务器重新连接到Derby

我使用Eclipse 4.2在Win 7上运行,在Tomcat 7服务器上启动Web应用程序并使用Derby数据库。 我尝试了很多方法,但一直运行到一个常见问题:

  • 第一次启动并运行时,一切正常。
  • 当我在更改后重新部署应用程序时,所有数据库连接都会挂起(任何类型的重新启动)。
  • 如果我停止Eclipse并重新启动Eclipse,则清除问题并且下一次运行再次正常工作。
  • 经过一番调查,看起来问题在于Derby端口(1527)没有从服务器的一次执行释放到下一次。 这似乎很奇怪,因为Derby是由独立的javaw进程的Tomcat实例启动的。

    我试过了:

  • 将Derby连接配置为Tomcat资源
  • 在我的代码中建立连接(而不是通过Tomcat资源)
  • 嵌入式和网络驱动程序
  • 在启动和关闭Tomcat服务器时从servlet启动/停止网络驱动程序
  • 关闭Tomcat时,通过servlet关闭嵌入式驱动程序
  • 再一次,每种方法都可以很好地连接第一次。

    另一个似乎没有关联的症状(除了作为关闭是否正确完成的可能指示外)是数据库的db.lck文件永远不会被删除。 但是,它是否存在与我是否可以重新连接没有关系(只有停止/启动eclipse才会有影响)。

    任何洞察力将不胜感激。 谢谢!


    经过一些进一步的调查后,我打算将其称为以下内容的副本:无法为连接URL'null'创建类''的JDBC驱动程序:我不理解此例外。 这不是完全相同的事情,但该解决方案(创建META-INF / context.xml)允许它进行失败调用而不是挂起,这是一个重大改进,并且表明它与主要相关。


    我终于弄明白了。 事实证明,我在Tomcat lib文件夹(用于Tomcat)以及Eclipse中的应用程序的部署程序集中(而不仅仅是在构建路径中)具有derby jar。 所以Tomcat使用内置的库,而我的应用程序使用嵌入式库,这导致冲突。 将libs作为Tomcat的一部分,并将它们从我的war文件中删除,完全解决了这个问题。

    链接地址: http://www.djcxy.com/p/41241.html

    上一篇: Unable to reconnect to Derby from Tomcat server started via Eclipse

    下一篇: How connect Database to NetBeans