0

DatabaseSource JNDIルックアップを介してデータベース接続を確立しようとしました.Tomcat Webサイトの指示に従い、以下のようにしました

リソースをcontext.xmlに追加しました

<Resource name="jdbc/myDB" auth="Container"
          type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
          url="jdbc:oracle:thin:111.111.111.111:1234:DBNME"
          username="Dobby" password="pwd" maxActive="20" maxIdle="10" maxWait="-1"/> 

web.xml

 <resource-ref>
    <description>MY DataBase</description>
    <res-ref-name>jdbc/myDB</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>

コード内

  Context initContext = new  InitialContext();
                DataSource ds = (DataSource)initContext.lookup("java:/comp/env/jdbc/myDB");
                Connection con =  ds.getConnection();  

接続が失敗した場合、DB URL を含むエラー メッセージを表示したいのですが、コードの context.xml 内で構成された DB URL を取得するにはどうすればよいですか?

4

2 に答える 2

1

Apache の例で気づいたように、MyBeanFactory というクラスが 1 つあります。このクラスから、context.xml ファイルからリソースを取得できます。

サーブレットで接続が確立されているかどうかを確認する必要があります。接続が確立されていない場合は、setter/getter メソッドを使用して context.xml から URL の値を取得し、URL とともにエラー メッセージを表示します。

サーバーのIPアドレスで同じことをしていて、成功しました。:D

お役に立てれば...

于 2013-03-18T13:59:40.407 に答える
0

私はこれが可能だとは思わない.あなたは実際にJNDIを使ってこれらの詳細から独立している.エラーメッセージに入れることができるのはリソースの名前だけだ"java:/comp/env/jdbc/myDB". 管理/構成を行った担当者は、この名前が参照している魔女 DB の詳細を知っています。

通常、アプリの開発者はリソースの名前を定義し、それを Appserver-admin に渡します。しかし、開発するときは、両方の役割を果たす必要があります。

編集

これはもちろん、インターフェイスDataSourceのみを使用する予定の場合です。

特定の DBMS をターゲットにしたい場合は、jdbc ドライバーで提供されるそのインターフェースの実装を調べることができます。たとえば、DataSource の Oralce 実装は次のとおりです: OracleDataSource 。詳細については、こちらを参照してください

于 2013-03-14T13:50:48.720 に答える