簡體   English   中英

JDBC驅動程序是否應包含在WAR中?

[英]Should JDBC drivers be included in a WAR?

我們正在開發一種商業軟件產品。 它支持Oracle,MySQL和SQL * Server后端(我們也使用H2進行測試)。 我們使用特定版本的JDBC驅動程序對這些不同的數據庫進行集成測試。 Maven處理這一切都非常漂亮。

將應用程序打包為WAR時,如果我們包含JDBC驅動程序是否可以? 什么是標准做法?

由於我們不知道哪個數據庫可以提前使用,因此我們必須將它們全部包含在內。 目標servlet容器是Tomcat和Jetty,但是一些客戶也希望在WebSphere和JBoss中運行。

那么servlet包含和應用程序服務器自帶的JDBC驅動程序? 我們會發生沖突嗎 另一個問題是我們已經開發並測試了一個版本的驅動程序,如果客戶使用其他版本,我們可能會遇到問題。

目前我們使用Spring數據源bean,但正在轉向數據源的JNDI查找。

那么servlet包含和應用程序服務器自帶的JDBC驅動程序?

有些人(例如WebLogic)。

我們會發生沖突嗎

他們不應該。 不確定在應用程序級別創建獨立連接池時會選擇您的(這完全取決於類加載器委派模式)。

另一個問題是我們已經開發並測試了一個版本的驅動程序,如果客戶使用其他版本,我們可能會遇到問題。

有一個支持的版本列表。

目前我們使用Spring數據源bean,但正在轉向數據源的JNDI查找。

如果這意味着使用應用程序服務器提供的連接池,則必須在容器級別而不是在應用程序級別安裝驅動程序。 這以某種方式結束了討論。

在大多數應用程序中,JDBC驅動程序不作為應用程序的一部分提供。

如果您運送JDBC驅動程序,則意味着您必須為要支持的所有數據庫提供驅動程序。 它添加了許多不必要的庫。

只是不添加任何驅動程序,並告訴用戶在需要時將相關的JAR文件放在服務器庫中。

除了在war文件中包含驅動程序的技術優點之外,您還應檢查驅動程序的許可,並確保它可由第三方分發。

暫無
暫無

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

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