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

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

推薦する

Docker 環境での Jmeter の分散操作に関する詳細なチュートリアル

1. jmeterの基本イメージを構築するDockerfile は次のとおりです。 # Java 8...

Vue命令の実装原理の分析

目次1. 基本的な使い方2. 指示の動作原理2.1. 初期化2.2 テンプレートのコンパイル2.3....

MySQL で distinct メソッドを使用する詳細な例

明確な意味: distinctive は、一意のレコードの数を照会するために使用されます。つまり、d...

DockerにElasticsearch7.6クラスタをインストールしてパスワードを設定する方法

目次基本的な設定バージョンとDockerイメージについて始めるelasticsearch.ymlにつ...

MACOS で MySQL ルートパスワードを忘れた場合の解決策

MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...

Ubuntu 16.04 mysql5.7.17 リモートポート 3306 を開く

MySQLへのリモートアクセスを有効にするデフォルトでは、MySQL ユーザーにはリモート アクセス...

Linux カーネル デバイス ドライバー カーネル時間管理に関する注意事項

/****************** * Linux カーネルの時間管理 ***********...

Dockerでコンテナを作成するときのディレクトリ権限

昨日プロジェクトを書いていた時に、MySQL の派生版である Percona を使う必要があったので...

JavaScript で円形カルーセルを実装する

この記事では、円形カルーセルを実装するためのJavaScriptの具体的なコードを参考までに紹介しま...

MySQL に配列を保存するサンプルコードと方法

多くの場合、ストアド プロシージャを作成するときに配列がよく使用されますが、MySQL ではストアド...

Linux で fdisk を使用してディスクをパーティション分割する方法

Linux パーティションでよく使用されるコマンド: fdisk、MBR パーティション テーブルの...

CentOS7.3 での MySQL 8.0.13 のインストールと設定のチュートリアル

1. 基本環境1. オペレーティングシステム: CentOS 7.3 2. MySQL: 8.0.1...

CSS ボックスを中央揃えするためのよく使われるいくつかの方法 (要約)

最初のもの: CSSの位置プロパティの使用 <スタイル タイプ="text/css&...

CSSスプライト技術は複数の背景を1つのPNG画像に統合しますCSSポジショニング

アメリカのYAHOOがページ制作で使用している画像統合技術。これらのアイコン、列背景、画像ボタンを定...

HTML+JS に基づくシンプルな年齢計算ツールの実装

目次序文デモンストレーション効果HTMLコードCSSコードJavascriptコードデモアドレス序文...