Tomcat で JNDI データ ソースを構成する 3 つの方法

Tomcat で JNDI データ ソースを構成する 3 つの方法

これまでの仕事では、開発サーバーは一般的にTomcatでした。

データソースは、多くの場合、applicationContext.xmlでdataSource Beanを構成することによって構成されます。

次に、デプロイメント中にJNDI構成を変更します。

Tomcatの設定を変更する必要があるためだと思います

JBoss、WebLogic、その他のサーバーとは異なり、管理インターフェースでJNDIデータソースを直接追加できます。

その構成を研究する人はほとんどいません。

最近、小さなプロジェクトをやりました。バージョンをリリースするときに、antを使ってjarパッケージにコンパイルし、テストにかけました。

テスターはボスです。彼はデータソースを変更するように教えられていましたが、それを聞いていないふりをしました。

週末は退屈だったので、Tomcatの設定チュートリアルをいくつか読みました。以下に要約を示します。

注意: プロジェクトが webapps の下に直接ドロップされた場合、server.xml にプロジェクトに対応するコンテキスト ノードは存在しません。

更新: 以前の設定の一部はインターネットから取得されたものであまり役に立たなかったため、いくつかの更新が行われました。

それぞれの方法についての個人的なコメント

PS: 以下の構成はapache-tomcat-6.0.35でテストされており、データベースにアクセスできます。

最初のタイプは、排他的なデータソースを持つ単一のアプリケーションです。

最初のステップでは、Tomcatのserver.xmlを探し、プロジェクトのコンテキストノードを見つけて、プライベートデータソースを追加します。

<コンテキスト docBase="WebApp" パス="/WebApp" 再ロード可能="true" ソース="org.eclipse.jst.jee.server:WebApp">  
<リソース  
    名前="jdbc/mysql"   
    スコープ="共有可能"   
    タイプ="javax.sql.DataSource"  
    ファクトリ="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"  
    url="jdbc:mysql://localhost:3306/test"  
    ドライバークラス名 = "com.mysql.jdbc.Driver"  
    ユーザー名="root"  
    パスワード="root"  
/>  
</コンテキスト>  

利点: シンプル

デメリット: 再利用性が低い

2 番目の方法は、グローバル JNDI データ ソースを構成し、それを単一のアプリケーションに適用することです。

2つのステップ

最初のステップは、Tomcatのserver.xmlでGlobalNamingResourcesノードを見つけ、そのノードの下にグローバルデータソースを追加することです。

<リソース  
    名前="jdbc/mysql"   
    スコープ="共有可能"   
    タイプ="javax.sql.DataSource"  
    ファクトリ="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"  
    url="jdbc:mysql://localhost:3306/test"  
    ドライバークラス名 = "com.mysql.jdbc.Driver"  
    ユーザー名="root"  
    パスワード="root"  
/>  
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

2 番目の手順は、この JNDI データ ソースを適用するプロジェクト コンテキスト ノードを見つけて、グローバル データ ソースに参照 ResourceLink を追加することです。

<コンテキスト docBase="WebApp" パス="/WebApp" 再読み込み可能="true">  
    <リソースリンク グローバル="jdbc/mysql" 名前="jdbc/mysql" タイプ="javax.sql.DataSource" />  
</コンテキスト>

利点: 再利用性、制御性

デメリット: 構成は3番目の方法よりも複雑で、各プロジェクトを構成する必要があります。

3 番目の方法は、グローバル JNDI データ ソースを構成し、それを Tomcat の下にデプロイされたすべてのアプリケーションに適用することです。

2つのステップに分かれている

最初のステップ

2番目の方法の最初のステップを参照してください

2 番目のステップは、Tomcat の context.xml を見つけて、最初のステップで構成されたデータ ソースを参照するために、Context ノードの下に ResourceLink ノードを追加することです。この XML 構成ファイルのルート ノードは <Context> です。

<コンテキスト>  
    <リソースリンク グローバル="jdbc/mysql" 名前="jdbc/mysql" タイプ="javax.sql.DataSource" />  
   <ウォッチリソース>WEB-INF/web.xml</ウォッチリソース>  
<コンテキスト>  

利点: 再利用性、一度の実装 欠点: 制御性がない

JNDI データ ソースへの Spring 参照

applicationContext.xmlにBeanを追加して、元のデータソースを置き換えます。

<jee:jndi-lookup id="データソース" jndi-name="jdbc/mysql" />  

C3P0データソースの構成

タイプとファクトリーの値が変更されました

ユーザー名=>ユーザー

url=>jdbcURL

ドライバークラス名=>ドライバークラス

<リソース名="jdbc/mysql_c3p0" スコープ="共有可能"  
    タイプ = "com.mchange.v2.c3p0.ComboPooledDataSource"   
    ファクトリー="org.apache.naming.factory.BeanFactory"  
    jdbcUrl="jdbc:mysql://localhost:3306/test" ドライバークラス="com.mysql.jdbc.Driver"  
    ユーザー="root" パスワード="root" />  

Tomcat の JNDI データ ソースを構成する 3 つの方法についての記事はこれで終わりです。Tomcat の JNDI データ ソースを構成する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Spring Boot で組み込み Tomcat の maxPostSize 値を設定する方法
  • アイデアで外部Tomcatを使用してSpringbootを構成するための詳細な手順
  • Tomcat が設定ファイルを外部に配置するためのソリューション
  • Tomcat のメモリ構成の正しい姿勢についての簡単な説明
  • Tomcatユーザー管理の最適化された構成の詳細な説明

<<:  clipboard.js の使用法の概要

>>:  ウェブ理論: 考えさせない読書ノート

推薦する

XHTML 入門チュートリアル: XHTML タグ

XHTML タグの紹介<br />おそらく、前のセクションで、XHTML ファイルと通常...

標準のMySQL (x64) Windowsバージョンのインストール手順の詳細な説明

MySQL x64 はインストーラーを提供していません、インストーラーを提供していません、インストー...

CSSカウンター関連属性の学習の詳細な説明

CSS カウンター属性はほぼすべてのブラウザ (IE8 を含む) でサポートされていますが、あまり使...

忘れられたMySQLパスワードとログインエラーの問題について簡単に説明します

MySQL ログイン パスワードを忘れた場合、解決方法は実はとても簡単です。MySQL メイン構成フ...

IDEA が MySQL データベースに接続できない問題の 6 つの解決策

この記事では、IDEA が MySQL データベースに接続できない問題に対する 6 つの解決策を主に...

Vueウォッチの監視方法の概要

目次1. Vueにおけるwatchの役割はその名の通り、監視の役割です。 2. このオブジェクトのプ...

ウェブデザイナーのウェブデザイン学習経験とスキルのまとめ

会社の影響力が拡大し、製品が改良され続けるにつれて、関連するイメージデザインもそれに追いつき、徐々に...

MySQLオンラインログライブラリの移行例

最近の事例をお話ししましょう。オンライン Alibaba Cloud RDS 上のゲーム ログ ライ...

MySQL で日付を保存するためのベスト プラクティス ガイド

目次序文時間型を保存するのに文字列を使用しないでくださいMySQL の日付型日時タイムスタンプTIM...

Reactベースのコンポーネントのカプセル化の実装手順

目次序文antd はどのようにしてコンポーネントをカプセル化するのでしょうか?ディバイダーコンポーネ...

VMware Workstation 14 Pro インストール Ubuntu 16.04 チュートリアル

この記事では、VMware Workstation14 ProにUbuntu 16.04をインストー...

js 基本構文と Maven プロジェクト構成チュートリアル ケース

目次1. jsステートメント2番目、js配列3. js関数4. メイヴンV. 結論1. jsステート...

MySQLがファントムリードを解決する方法の詳細な説明

1. ファントムリーディングとは何ですか?トランザクションにおいて、複数のクエリの後に結果セットの数...

ウェブページ制作でウェブフォントファイルにベクターアイコンを追加する方法

ご存知のとおり、コンピューターには 2 種類の画像があり、1 つはビットマップ、もう 1 つはベクタ...

MySQL 8.0.25 のインストールと設定方法のグラフィックチュートリアル

MySQL 8.0.25の最新のダウンロードとインストールのチュートリアルは参考になります。具体的な...