2011-08-01 15 views
0

私は.warファイルAと.warファイルBと.warファイルCを持っています。 BとCはデータベース接続を使用する必要があるので、.war Aを使用してデータベース接続を共有することにしました。しかし、問題は.warファイルが独自のコンテキストで制限されていることです。だから私の質問は、私のTomcat Webアプリケーション間で共有するデータベース接続を取得する方法ですか?そして、いくつかのアプリのためだけに接続のアクセスを制限する方法は?サーブレット - 多くのコンテキスト - db接続を共有するには?

+0

私は似た何かがそこに言及されたと思う: http://stackoverflow.com/questions/6807818/share-java-classes-between-war-files-in-tomcat – gentimouton

+0

それは非常に興味深いですが、私は共有したいですinited db connection(BとCからの新しい接続を毎回避けて接続してクエリを実行するように接続されています)が、スレッドはlibクラスの共有だけを示していますか? :X – user592704

答えて

3

おそらく実際には、アプリ間で1つの接続を共有したいとは思わないでしょう。おそらく、接続プールを作成する必要があります。 のappropriate implementationをTomcatのJNDIレジストリに入れます。すべてのアプリは同じソースから接続を取得できます。いくつかのアプリへのアクセスを制限するには、そのアプリにgetConnection() method that requires a username and passwordを使用させるだけで、資格情報を持つアプリでのみ使用できます。

+0

しかし、複数のdbログイン接続が必要な場合はどうすればよいですか?たとえば、2つのリソースを使用できますか? – user592704

+0

必要なだけ多く使用しますが、各アプリケーションで独自のログイン資格情報を指定できるDataSource.getConnection()メソッドを使用することを既に提案しました。それはあなたに同じことをさせるでしょう。 –

+0

実際には、セッションでdb接続を維持したいと思いますが、1つのコンテキスト制限でこれを行うことができません:(セッションデータを.war(複数可)間で共有できますか? – user592704

1

context.xmlのデータソースリソースと参照をTomcatのserver.xmlに宣言してください。 Thisはあなたのケースをカバーします。

+0

は、私が質問したすべてのことを解決するか、もっと何かがあるはずですか? – user592704

+0

これでいいはずです。コンテナはあなたのすべてのアプリケーション用の** ** ** ** ** ** ** ** **共有プールを管理します。 –

+0

JDBCはそれに対応しますか? – user592704

関連する問題