ユーザー名/パスワードを指定せずに、スタンドアロンJavaアプリケーションからWebsphereデータソースにアクセスします

腹筋

私は、Websphere Application Serverからデータソースを取得し、db接続を取得して、いくつかのビジネスロジックを実行するスタンドアロンアプリケーションを作成しています。

import java.sql.Connection;
import java.sql.SQLException;
import java.util.Hashtable;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class TestDS {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Hashtable<String, String> pdEnv = new Hashtable<String, String>();
        pdEnv.put(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.websphere.naming.WsnInitialContextFactory");             
        pdEnv.put(Context.PROVIDER_URL, "iiop://localhost:2809");
        System.out.println("Getting connection");
        Context initialContext;
        try {
            System.setProperty("com.ibm.CORBA.Debug","true");
            System.setProperty("com.ibm.CORBA.CommTrace","true");
            System.setProperty("com.ibm.CORBA.Debug.Output","/usr/app/corba.log");
            initialContext = new InitialContext(pdEnv);
            System.out.println("Getting initial context");
            DataSource datasource = (DataSource)initialContext.lookup("jdbc/sampleDB");
            System.out.println("Getting datasource");
            Connection connection = null;
            System.out.println("Datasoure is "+ datasource);
            if (datasource != null) {
              //connection = datasource.getConnection("username","password"); // DB credintials
                connection = datasource.getConnection();
            } else {
              System.out.println("Failed to lookup datasource.");
            }
        } catch (NamingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

}

これにより、次のエラーが発生します

java.sql.SQLNonTransientException:[jcc] [t4] [10205] [11234] [4.21.29]ヌルのユーザーIDはサポートされていません。ERRORCODE = -4461、SQLSTATE = 42815 DSRA0010E:SQL状態= 42815、エラーコード= -4,461

ただし、ユーザーID /パスワードを入力すると、正常に機能します

 connection = datasource.getConnection("username","password");

データベース接続を取得するときにユーザーID /パスワードを指定せずに機能させるにはどうすればよいですか?

njr

ほとんどのJDBCドライバーベンダーは、ユーザーとパスワードをデータソースに設定することを許可しています。これは、ユーザー/パスワードなしで要求されるすべての接続のデフォルトとして機能します。WebSphere Application Serverでデータソースの構成に移動し、次に「カスタムプロパティ」に移動すると、「ユーザー」と「パスワード」のプロパティを追加できるはずです。これらは、次の場合にデータソースに適用されます。 JDBCベンダーはそれをサポートしています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ