【问题标题】:Place MySQL connector JAR in WEB-INF/lib of my WAR instead of in $CATALINA_HOME/common/lib?将 MySQL 连接器 JAR 放在我的 WAR 的 WEB-INF/lib 中,而不是放在 $CATALINA_HOME/common/lib 中?
【发布时间】:2009-01-23 13:38:00
【问题描述】:

我即将在 Tomcat 5.5.x 服务器上使用 MySQL 和 Hibernate。

我是否必须mysql-connector-java-[version]-bin.jar 放在$CATALINA_HOME/common/lib/ 中,或者我可以将它放在我的WAR 文件中的WEB-INF/lib 中以及我的其他库依赖项中吗?

WEB-INF/lib 的我的WAR 中拥有它会更容易,因为我可以通过这种方式使用Maven 存储库获得它。将它放在那里而不是放在 Tomcat 的公共库目录中是否有什么大的缺点?

【问题讨论】:

    标签: java mysql tomcat maven-2


    【解决方案1】:

    如果你的 jar 是通用的,那么它会在 tomcat 中全局加载。每个 webapp 都能看到它。如果你把它放在你的 webapp 中,只有你的 webapp 可以看到它。我假设 Boris 指的是如果你的全局 tomcat 配置的某些部分加载了需要 mysql 连接的东西(比如连接池),那么它将需要 jdbc 驱动程序,所以它会共同需要它。否则,没有。

    我相信您可以在将其配置存储在数据库中的 tomcat 配置中设置一个安全配置。如果你使用它,它需要一个驱动程序。

    你为什么想要 webapp/WEB-INF/lib 中的东西?好吧,因为它是模块化的,它是您的 web 应用程序的一部分,如果您将 web 应用程序移动到其他地方,它不需要额外的部分,这是您的 tomcat 安装的一部分。如果您可以将您的 web 应用程序直接放在一个股票 tomcat 安装中,那么维护会容易得多。另一个原因——如果你有多个 webapps,它们都会使用共同的 jars,这可能会导致库冲突和版本问题。

    一般来说,尽可能少地分享共同点。即使您只有一个应用程序。

    【讨论】:

      猜你喜欢
      • 2011-07-22
      • 2011-05-15
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      • 2018-02-24
      • 2017-10-19
      • 2010-11-29
      • 2016-02-06
      相关资源
      最近更新 更多