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でSpringbootプロジェクトを実行する方法

1. IDEAの下にあるターミナルをクリックし、mvn clean installと入力します。 次...

Centos7 DockerでNginxファイルを変更するプロセスの詳細な説明

1. docker に nginx をインストールします。 docker に Nginx をインスト...

有名なウェブサイトのロゴに使われている25種類のフォントのコレクション

この記事では、25 の有名な Web サイト (Google、Yahoo、Twitter、Digg ...

APPログインインターフェースシミュレーション要求を実装するためのPostmanデータ暗号化と復号化

目次主に使用されるPostmanの機能データの暗号化と復号化さまざまなパラメータ設定実際に送信された...

Bootstrapグリッドの垂直および水平配置の詳細な説明

目次1. Bootstrap グリッドレイアウト2. 垂直方向の配置2.1 行タグの垂直方向の配置を...

HTML テーブルタグチュートリアル (24): 行の水平方向の配置属性 ALIGN

水平方向では、行の配置を左、中央、右に設定できます。基本的な構文<TR ALIGN="...

MySQL の InnoDB ストレージ ファイルの詳細な説明

物理的に言えば、InnoDB テーブルは、共有テーブルスペース ファイル (ibdata1)、排他テ...

HTML ページ ソース コード レイアウトの概要_Powernode Java Academy

HTML ページ ソース コード レイアウトの概要この紹介では、Google のホームページのソー...

Linux にソフトウェアをインストールするときにソフトウェア パッケージが存在しない問題を解決する方法

ソフトウェア パッケージが存在しない場合は、インストールされているソフトウェアのソフトウェア ソース...

MySQL の暗黙的な型変換によって発生するインデックス障害の解決策

目次質問再生暗黙的な変換要約する参照する質問仕事中、1 つの SQL クエリ ステートメントのみを実...

Win10にmysql8.0.15 winx64をインストールしてサーバーに接続する際に問題が発生しました

1. mysql-8.0.15をダウンロード、インストール、設定する1. 公式サイト (https:...

ウェブデザインのためのロイヤルブルーのカラーマッチング入門

古典的な色の組み合わせは力と権威を伝え、強いロイヤルブルーはあらゆる古典的な色の組み合わせの中心的な...

React-Dropzone をベースにアップロードコンポーネント機能を開発する (サンプルデモ)

今回はReact-Flaskフレームワーク上でアップロードコンポーネントを開発するスキルについてお話...

JavaScript setinterval 1秒遅延ソリューション

setinterval を使用すると、ページを開いた直後に 1 秒の遅延後に実行されることがわかりま...

K8Sの高度な機能を理解するための記事

目次K8Sの高度な機能高度な機能要約するkubectl サービスの問題のトラブルシューティングK8S...