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 の使用法の概要

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

推薦する

JS の 6 つの継承方法とその長所と短所

目次序文プロトタイプチェーン継承コンストラクタの継承組み合わせ継承(プロトタイプチェーン継承とコンス...

HTM と HTML の違いは何ですか? HTM と HTML の違いは何ですか?

Web デザインを学習する過程で、html と htm の関係など、遭遇した多くの問題について深く...

MySQL ストアドプロシージャの長所と短所の分析

MySQL バージョン 5.0 ではストアド プロシージャのサポートが開始されました。ストアド プロ...

docker で PostgreSQL データベースをインストールして永続化する方法

Dockerのインストール手順をスキップする1. postgresqlイメージを取得する docke...

WebプロジェクトをIdeaにインポートし、Tomcatに公開する問題を解決します

Idea は既存の Web プロジェクトをインポートして Tomcat に公開しますが、Tomcat...

CentOS8 で Docker を使用してオープンソース プロジェクト Tcloud をデプロイするチュートリアル

1. Dockerをインストールする1. 仮想マシンに Centos7 をインストールしました。Li...

JavaScript 文字列操作の 4 つの実用的なヒント

目次序文1. 文字列を分割する2. JSONのフォーマットと解析3. 複数行の文字列と埋め込み式4....

Vue3でアイコンを使用する2つの例

目次1. SVGを使用する2. fontAwesomeを使用する3 ソース4 結論テクノロジースタッ...

LinuxシステムにDockerをインストールするプロセス

このブログでは、Docker をインストールするプロセスを簡単な手順で説明します。Docker のイ...

JavaScript の高度なプログラミングの基本参照型

目次1. 日付2. 正規表現3. オリジナルパッケージタイプ序文:参照値(オブジェクト)は、 Dat...

VUE uni-app でよく使用される API についての簡単な説明

目次1. ルーティングとページジャンプ2. インターフェース要約する1. ルーティングとページジャン...

純粋な CSS で「テキストオーバーフローの切り捨てと省略」を実装するいくつかの方法

私たちの日常的な開発作業では、テキストのオーバーフロー、切り捨て、省略は、考慮する必要がある非常に一...

HTML チュートリアル、HTML デフォルト スタイル

html 、アドレス、引用、本文、 dd 、 div 、 dl 、 dt 、フィールドセット、フォ...

axiosリクエストをvueでカプセル化する方法

実際、Vueでaxiosをカプセル化するのは非常に簡単ですまず、srcパスにhttpフォルダを作成し...

postcss-pxtorem モバイル適応の実装

コマンドを実行してプラグインpostcss-pxtoremをインストールします npm インストール...