0

環境:
Tomcat 7
JNDI
Spring-MyBatisNoJTA-
コモンズプーリングのみ

問題:接続プールをアドバタイズされたとおりに機能させることができません。スタンドアロンのトランザクションマネージャーを使用しない、またはすべての設定を戦争に投入しない、JNDIを無意味にするこの例は1つも見つかりません。JTAはこのアプリケーションにはやり過ぎであり、コモンズプーリングに固執する必要があると言われています。それは理にかなっていますが、そのようにすると、プーリングを構成する方法がわかりません。

では、warファイルに設定を入れずに、スタンドアロンのトランザクションマネージャーを使用せずに接続プールを構成するにはどうすればよいですか?これは、完全なJava EEアプリケーションサーバーなしで実行できますか?実際には完全なJavaEEである別の製品からTomcatに移行しているところなので、これはContainervrsである可能性があると思います。アプリケーションサーバーの問題。

奇妙な部分は、JNDIを使用でき、使用したことがあるということですが、プーリングは間違いなく間違っています。

これはおそらく機能する1つの例ですが、設定がMETA-INF / context.xmlにある場合、なぜJNDIを気にする必要がありますか?:

MyBatisJNDIの例

4

1 に答える 1

0

context.xmlを使用しても、コンテナーレベルの設定のままです。ただし、WARファイルをデプロイする前に接続プールを作成するよりも、1つのユニットにすべてをデプロイするのに便利な方法です。

JNDIは、アプリケーション構成を汎用的に保つことを目的としています。たとえば、WARを取得してWebSphereにデプロイすると、context.xmlファイルは無視されます。ただし、WebSphereは、web.xmlにJDNIリソース参照があることを確認し、データ・ソースの作成を順を追って説明します。Tomcatと同じ考えですが、それを行う方法が異なります。

このアプリケーションがTomcatでのみ実行されることを100%確信している場合は、JNDIを使用する必要はありません。ただし、後で別のコンテナに移動する場合は、問題を回避できます。

于 2012-11-30T12:36:40.930 に答える