SlideShare a Scribd company logo
1 of 23
Download to read offline
Webアプリケーションからデータベースにアクセスするために、Tomcat上に利用するデータベースに応じたデータソース
を設定します。
データソースを設定したら、Webアプリケーションから適切なデータソースが利用できるように、コンテキスト情報とし
てリソースリンクが必要です。 コンテキスト情報は、コンテキスト記述子としてXMLファイルに< context >タグで記述さ
れています。
データソースを利用するには、あらかじめサーバー側でJNDIにデータソースの登録をしておきます。
Webアプリケーションからは登録されているデータソース名を、JNDIに対して検索(ルックアップ)します。
参照されたデータソースからConnectionオブジェクトがプールから取り出され、Webアプリケーションから利用できる
ようになります。
Tomcat側でデータソースを登録する際には、使用するデータベース毎に対応するドライバ名やurlなどを設定しながらデー
タソースに名前をつけ、JNDIに登録しておきます。 この名前のことをグローバル名といいます。
データソース定義は、サーバー全体に設定することもできますが、Webアプリケーション毎に設定することもできます。
Webアプリケーションのプログラムがデータソースを利用してデータベースにアクセスする場合は、 JNDIに登録されてい
るデータソースのグローバル名を指定して検索することもできますが、データベースが変更された場合を考慮し、
java:comp/env/という接頭子をつけたローカル名でJNDIから検索します。
検索を行うJavaコードでローカル名(ローカル名であることを示すために、java:comp/envがつく)を指定するのはもちろん
ですが、Webアプリケーションのweb.xmlファイルでも定義されています。
プログラムから指定するローカル名とデータソースで指定するグローバル名のマッピングを行うのがリソースリンクであ
り、 各アプリケーションごとにコンテキスト記述子としてXMLファイルに登録しておきます。
コンテキスト記述子はサーバー全体、ホスト単位、アプリケーション単位で記述することができ、図のような順で評価さ
れます。
開発環境において、Webアプリケーション内のJavaコードからはローカル名でデータソースを利用し、Web.xmlファイル
にデータソースの設定をローカル名で行います。
META-INFcontext.xmlでリソースリンクを設定し、テスト用データベースのローカル名とグローバル名のマッピングを
行い、データベースとの接続テストを行います。
本番環境にWebアプリケーションをデプロイすると、META-INFcontext.xmlは%CATALINA_HOME%confエンジン名
ホスト名Webアプリケーション名.xmlファイルにコピーされ、コンテキスト情報を提供します。
本番環境用のデータベースのデータソースは、サーバー管理者が設定を行います。それに合わせて管理者がコンテキス
ト情報のリソースリンクを変更することにより、 プログラムで指定しているローカル名とデータソースのグローバル名
との柔軟な対応を取ることができます。
Webアプリケーション側でコンテキスト情報を設定せず、サーバー側のデフォルトのコンテキストを使用することも可能
です。
開発環境では、Tomcatにテスト用データベースに対するデータソースの設定を行い、プログラムのローカル名とデータ
ソース上のグローバル名のマッピングを行うリソースリンクを、デフォルトのコンテキスト情報として %
CATALINA_HOME%confcontext.xmlに作成し、テストを行います。
本番環境では、Tomcatに本番用データベースに対するデータソースの設定を行い、 プログラムのローカル名とデータソース
上のグローバル名のマッピングを行うリソースリンクを、 デフォルトのコンテキスト情報として %CATALINA_HOME%conf
context.xmlに作成します。
Webアプリケーションは、データベースにアクセスするための記述および設定をする必要があります。
 ①Javaプログラムでは、WEB-INFweb.xmlで定義されたものと同じリソース参照名を使うことに注意。
 ②あらかじめ設定されているデータソースのJNDI名(ローカル名)を定義するために、 WebアプリケーションのWEB-
INFweb.xmlにリソース参照としてデータソースの定義を追加。
アプリケーションサーバー側でも、データソースを利用できるように設定しなければなりません。
①JDBCドライバのインストール
 :JDBCデータソースを使うには、利用するデータベース用のJDBCドライバをTomcat 内部クラスとWebアプリケーショ
ンの両方で 利用可能にする必要があります。そのためには、データベースに対応したJDBCドライバを %
CATALINA_HOME%libにコピーします。 ここでは、あらかじめダウンロードしておいたPostgreSQL用のJDBCドライバを
使用します。
③Webアプリケーションのデプロイ
 :マネージャ・ツールなどを使ってWebアプリケーションをデプロイし、web.xmlに定義されているデータソースの
ローカル名やタイプがデータソースであるかを確認します。
④リソースリンクの確認
 :生成されたコンテキスト情報を確認します。%CATALINA_HOME%confエンジン名ホスト名Webアプリケーショ
ン名.xmlファイルの内容を確認し、データソースのローカル名とグローバル名のマッピングが正しいか確認し、正しくな
ければグローバル名の修正を行います。

More Related Content

What's hot

Red Hat Update Infrastructure 2.0
Red Hat Update Infrastructure 2.0Red Hat Update Infrastructure 2.0
Red Hat Update Infrastructure 2.0
Etsuji Nakai
 

What's hot (20)

OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 
NetBackup 8.2 CloudCatalyst構築および復旧ガイド(Amazon S3利用)
NetBackup 8.2 CloudCatalyst構築および復旧ガイド(Amazon S3利用)NetBackup 8.2 CloudCatalyst構築および復旧ガイド(Amazon S3利用)
NetBackup 8.2 CloudCatalyst構築および復旧ガイド(Amazon S3利用)
 
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
そろそろ知っておきたい!!コンテナ技術とDockerのキホンそろそろ知っておきたい!!コンテナ技術とDockerのキホン
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
 
AWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンAWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターン
 
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기
 
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...
 
AWSとReactで始めるShopifyアプリ開発
AWSとReactで始めるShopifyアプリ開発AWSとReactで始めるShopifyアプリ開発
AWSとReactで始めるShopifyアプリ開発
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking Overview
 
Qlik Replicate のインストール
Qlik Replicate のインストールQlik Replicate のインストール
Qlik Replicate のインストール
 
自宅vSphereからニフクラに引っ越ししてみた
自宅vSphereからニフクラに引っ越ししてみた自宅vSphereからニフクラに引っ越ししてみた
自宅vSphereからニフクラに引っ越ししてみた
 
OverlayFS as a Docker Storage Driver
OverlayFS as a Docker Storage DriverOverlayFS as a Docker Storage Driver
OverlayFS as a Docker Storage Driver
 
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Ka...
20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Ka...20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Ka...
20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Ka...
 
Introduction of Tomcat
Introduction of TomcatIntroduction of Tomcat
Introduction of Tomcat
 
Red Hat Update Infrastructure 2.0
Red Hat Update Infrastructure 2.0Red Hat Update Infrastructure 2.0
Red Hat Update Infrastructure 2.0
 
HTTP/2の現状とこれから
HTTP/2の現状とこれからHTTP/2の現状とこれから
HTTP/2の現状とこれから
 
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 

Viewers also liked (8)

1 サーブレットJSPによるWebアプリケーション開発 第5章 MVCプログラミング(2)-DBアクセスプログラム
1 サーブレットJSPによるWebアプリケーション開発 第5章 MVCプログラミング(2)-DBアクセスプログラム1 サーブレットJSPによるWebアプリケーション開発 第5章 MVCプログラミング(2)-DBアクセスプログラム
1 サーブレットJSPによるWebアプリケーション開発 第5章 MVCプログラミング(2)-DBアクセスプログラム
 
Oracle talk 20131213
Oracle talk 20131213Oracle talk 20131213
Oracle talk 20131213
 
Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎
 
2 プロジェクトマネジメント 第6章 まとめ
2 プロジェクトマネジメント 第6章 まとめ2 プロジェクトマネジメント 第6章 まとめ
2 プロジェクトマネジメント 第6章 まとめ
 
JavaEE7徹底入門 プレゼンテーション層の開発 JSF
JavaEE7徹底入門 プレゼンテーション層の開発 JSFJavaEE7徹底入門 プレゼンテーション層の開発 JSF
JavaEE7徹底入門 プレゼンテーション層の開発 JSF
 
JSF2.2で簡単webアプリケーション開発
JSF2.2で簡単webアプリケーション開発JSF2.2で簡単webアプリケーション開発
JSF2.2で簡単webアプリケーション開発
 
Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486
 
ぼくがAthenaで死ぬまで
ぼくがAthenaで死ぬまでぼくがAthenaで死ぬまで
ぼくがAthenaで死ぬまで
 

More from Enpel

2 プロジェクトマネジメント 第5章 マネジメント実践(2)
2 プロジェクトマネジメント 第5章 マネジメント実践(2)2 プロジェクトマネジメント 第5章 マネジメント実践(2)
2 プロジェクトマネジメント 第5章 マネジメント実践(2)
Enpel
 
2 プロジェクトマネジメント 第5章 マネジメント実践(1)
2 プロジェクトマネジメント 第5章 マネジメント実践(1)2 プロジェクトマネジメント 第5章 マネジメント実践(1)
2 プロジェクトマネジメント 第5章 マネジメント実践(1)
Enpel
 
2 プロジェクトマネジメント ○第4章 PMBOKの9つの知識(4)
2 プロジェクトマネジメント ○第4章 PMBOKの9つの知識(4)2 プロジェクトマネジメント ○第4章 PMBOKの9つの知識(4)
2 プロジェクトマネジメント ○第4章 PMBOKの9つの知識(4)
Enpel
 
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(3)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(3)2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(3)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(3)
Enpel
 
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(2)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(2)2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(2)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(2)
Enpel
 
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(1)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(1)2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(1)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(1)
Enpel
 
2 プロジェクトマネジメント 第3章 PMBOKのプロセス群
2 プロジェクトマネジメント 第3章 PMBOKのプロセス群2 プロジェクトマネジメント 第3章 PMBOKのプロセス群
2 プロジェクトマネジメント 第3章 PMBOKのプロセス群
Enpel
 
2 プロジェクトマネジメント 第2章 マネジメントとPMBOK
2 プロジェクトマネジメント 第2章 マネジメントとPMBOK2 プロジェクトマネジメント 第2章 マネジメントとPMBOK
2 プロジェクトマネジメント 第2章 マネジメントとPMBOK
Enpel
 
2 プロジェクトマネジメント 第1章 プロジェクトマネジメントの前提
2 プロジェクトマネジメント 第1章 プロジェクトマネジメントの前提2 プロジェクトマネジメント 第1章 プロジェクトマネジメントの前提
2 プロジェクトマネジメント 第1章 プロジェクトマネジメントの前提
Enpel
 
3 基礎UML言語 第3章 クラス図とオブジェクト図(2)
3 基礎UML言語 第3章 クラス図とオブジェクト図(2) 3 基礎UML言語 第3章 クラス図とオブジェクト図(2)
3 基礎UML言語 第3章 クラス図とオブジェクト図(2)
Enpel
 
1 システム開発の基礎 第2章 システム開発作業(3)
1 システム開発の基礎 第2章 システム開発作業(3)1 システム開発の基礎 第2章 システム開発作業(3)
1 システム開発の基礎 第2章 システム開発作業(3)
Enpel
 
1 システム開発の基礎 第2章 システム開発作業(2)
1 システム開発の基礎 第2章 システム開発作業(2)1 システム開発の基礎 第2章 システム開発作業(2)
1 システム開発の基礎 第2章 システム開発作業(2)
Enpel
 
1 システム開発の基礎 第2章 システム開発作業(1)
1 システム開発の基礎 第2章 システム開発作業(1)1 システム開発の基礎 第2章 システム開発作業(1)
1 システム開発の基礎 第2章 システム開発作業(1)
Enpel
 
1 システム開発の基礎 第1章 システム開発の基礎知識(2)
1 システム開発の基礎 第1章 システム開発の基礎知識(2)1 システム開発の基礎 第1章 システム開発の基礎知識(2)
1 システム開発の基礎 第1章 システム開発の基礎知識(2)
Enpel
 
1 システム開発の基礎 第1章 システム開発の基礎知識(1)
1 システム開発の基礎 第1章 システム開発の基礎知識(1)1 システム開発の基礎 第1章 システム開発の基礎知識(1)
1 システム開発の基礎 第1章 システム開発の基礎知識(1)
Enpel
 
3 基礎UML言語 第5章 演習問題
3 基礎UML言語 第5章 演習問題3 基礎UML言語 第5章 演習問題
3 基礎UML言語 第5章 演習問題
Enpel
 
3 基礎UML言語 第4章 シーケンス図
3 基礎UML言語 第4章 シーケンス図3 基礎UML言語 第4章 シーケンス図
3 基礎UML言語 第4章 シーケンス図
Enpel
 
3 基礎UML言語 第3章 クラス図とオブジェクト図(1)
3 基礎UML言語 第3章 クラス図とオブジェクト図(1)3 基礎UML言語 第3章 クラス図とオブジェクト図(1)
3 基礎UML言語 第3章 クラス図とオブジェクト図(1)
Enpel
 
3 基礎UML言語 第2章 オブジェクト指向の基本用語(3)
3 基礎UML言語 第2章 オブジェクト指向の基本用語(3)3 基礎UML言語 第2章 オブジェクト指向の基本用語(3)
3 基礎UML言語 第2章 オブジェクト指向の基本用語(3)
Enpel
 
3 基礎UML言語 第2章 オブジェクト指向の基本用語(2)
3 基礎UML言語 第2章 オブジェクト指向の基本用語(2)3 基礎UML言語 第2章 オブジェクト指向の基本用語(2)
3 基礎UML言語 第2章 オブジェクト指向の基本用語(2)
Enpel
 

More from Enpel (20)

2 プロジェクトマネジメント 第5章 マネジメント実践(2)
2 プロジェクトマネジメント 第5章 マネジメント実践(2)2 プロジェクトマネジメント 第5章 マネジメント実践(2)
2 プロジェクトマネジメント 第5章 マネジメント実践(2)
 
2 プロジェクトマネジメント 第5章 マネジメント実践(1)
2 プロジェクトマネジメント 第5章 マネジメント実践(1)2 プロジェクトマネジメント 第5章 マネジメント実践(1)
2 プロジェクトマネジメント 第5章 マネジメント実践(1)
 
2 プロジェクトマネジメント ○第4章 PMBOKの9つの知識(4)
2 プロジェクトマネジメント ○第4章 PMBOKの9つの知識(4)2 プロジェクトマネジメント ○第4章 PMBOKの9つの知識(4)
2 プロジェクトマネジメント ○第4章 PMBOKの9つの知識(4)
 
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(3)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(3)2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(3)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(3)
 
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(2)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(2)2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(2)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(2)
 
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(1)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(1)2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(1)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(1)
 
2 プロジェクトマネジメント 第3章 PMBOKのプロセス群
2 プロジェクトマネジメント 第3章 PMBOKのプロセス群2 プロジェクトマネジメント 第3章 PMBOKのプロセス群
2 プロジェクトマネジメント 第3章 PMBOKのプロセス群
 
2 プロジェクトマネジメント 第2章 マネジメントとPMBOK
2 プロジェクトマネジメント 第2章 マネジメントとPMBOK2 プロジェクトマネジメント 第2章 マネジメントとPMBOK
2 プロジェクトマネジメント 第2章 マネジメントとPMBOK
 
2 プロジェクトマネジメント 第1章 プロジェクトマネジメントの前提
2 プロジェクトマネジメント 第1章 プロジェクトマネジメントの前提2 プロジェクトマネジメント 第1章 プロジェクトマネジメントの前提
2 プロジェクトマネジメント 第1章 プロジェクトマネジメントの前提
 
3 基礎UML言語 第3章 クラス図とオブジェクト図(2)
3 基礎UML言語 第3章 クラス図とオブジェクト図(2) 3 基礎UML言語 第3章 クラス図とオブジェクト図(2)
3 基礎UML言語 第3章 クラス図とオブジェクト図(2)
 
1 システム開発の基礎 第2章 システム開発作業(3)
1 システム開発の基礎 第2章 システム開発作業(3)1 システム開発の基礎 第2章 システム開発作業(3)
1 システム開発の基礎 第2章 システム開発作業(3)
 
1 システム開発の基礎 第2章 システム開発作業(2)
1 システム開発の基礎 第2章 システム開発作業(2)1 システム開発の基礎 第2章 システム開発作業(2)
1 システム開発の基礎 第2章 システム開発作業(2)
 
1 システム開発の基礎 第2章 システム開発作業(1)
1 システム開発の基礎 第2章 システム開発作業(1)1 システム開発の基礎 第2章 システム開発作業(1)
1 システム開発の基礎 第2章 システム開発作業(1)
 
1 システム開発の基礎 第1章 システム開発の基礎知識(2)
1 システム開発の基礎 第1章 システム開発の基礎知識(2)1 システム開発の基礎 第1章 システム開発の基礎知識(2)
1 システム開発の基礎 第1章 システム開発の基礎知識(2)
 
1 システム開発の基礎 第1章 システム開発の基礎知識(1)
1 システム開発の基礎 第1章 システム開発の基礎知識(1)1 システム開発の基礎 第1章 システム開発の基礎知識(1)
1 システム開発の基礎 第1章 システム開発の基礎知識(1)
 
3 基礎UML言語 第5章 演習問題
3 基礎UML言語 第5章 演習問題3 基礎UML言語 第5章 演習問題
3 基礎UML言語 第5章 演習問題
 
3 基礎UML言語 第4章 シーケンス図
3 基礎UML言語 第4章 シーケンス図3 基礎UML言語 第4章 シーケンス図
3 基礎UML言語 第4章 シーケンス図
 
3 基礎UML言語 第3章 クラス図とオブジェクト図(1)
3 基礎UML言語 第3章 クラス図とオブジェクト図(1)3 基礎UML言語 第3章 クラス図とオブジェクト図(1)
3 基礎UML言語 第3章 クラス図とオブジェクト図(1)
 
3 基礎UML言語 第2章 オブジェクト指向の基本用語(3)
3 基礎UML言語 第2章 オブジェクト指向の基本用語(3)3 基礎UML言語 第2章 オブジェクト指向の基本用語(3)
3 基礎UML言語 第2章 オブジェクト指向の基本用語(3)
 
3 基礎UML言語 第2章 オブジェクト指向の基本用語(2)
3 基礎UML言語 第2章 オブジェクト指向の基本用語(2)3 基礎UML言語 第2章 オブジェクト指向の基本用語(2)
3 基礎UML言語 第2章 オブジェクト指向の基本用語(2)
 

2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(3)-データソース