java - 在 Tomcat 7 上运行 Framework 2.2.2 - 删除 BoneCP

标签 java playframework tomcat7 playframework-2.2 bonecp

我有一个 Play Framework 2.2.2 应用程序,我将其部署为 .war 文件并在 Tomcat 7 下运行。我的应用程序在我的本地开发计算机上运行了几天,没有出现任何问题(通过 Play 构建的)在服务器中,而不是 Tomcat 中),但是一旦我将其部署在 Tomcat 下,几个小时后,Tomcat 服务器将锁定,同时也会关闭其上运行的所有其他应用程序。

我认为问题是Play中的BoneCP连接池和Tomcat的内置连接池有冲突。 Tomcat 日志中没有太多或任何有用的信息,所以我在这里有点猜测。

我想在 Play 应用程序中禁用 BoneCP 连接池,但找不到有关如何执行此操作的任何信息。

任何建议表示赞赏!

最佳答案

对此有多种可能的解决方案,这些解决方案可能或多或少更适合您的部署环境。

  1. Play 为您提供了“开箱即用”的数据库连接,您无需使用该连接。从构建文件中删除 Play JDBC 组件(从 jdbc 中删除 libraryDependencies )并自行手动设置 JDBC 连接。例如,您可以创建一个单例 TomcatConnectionPool有一个功能 getConnection()这为您提供了在 Play 操作中使用所需的 JDBC 连接。

  2. Write your own plugin特别延伸Play's DBPlugin interface所以它是一个数据库插件。实现它like Play's BoneCPPlugin但让它使用 Tomcat 连接池而不是 BoneCP。

  3. 使用其他人已经制作的自定义 Play 数据库插件,like this one that uses c3p0 。我有一些轶事证据表明 c3p0 与 Tomcat 配合良好,但您的情况因人而异。

关于java - 在 Tomcat 7 上运行 Framework 2.2.2 - 删除 BoneCP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23012785/

相关文章:

java - 包含依赖项的 ClassNotFoundException

javascript - Scala 中的粘 cookies

eclipse - tomcat 上的 java web 服务 (jersey) 仅在从 eclipse 运行时才有效

eclipse - 无法在 ubuntu 12.04 上将 tomcat7 服务器安装到 eclipse 中

java - Webapp 在本地 tomcat7 上运行,但不在 linux tomcat7 上运行

java - 使用 AIDL 在两个进程之间传输 Parcelable

java - 如何调用 ArrayList 中数组的方法?

java - 企业架构师脚本: missed method in java api eaapi. jar

json - Play 2.2.2 (Scala) Json parse as List[Class] 问题

Scala/Akka WSResponse 递归调用