外部サーバーに接続したいスタンドアロンのJavaクライアント(Eclipse内から実行)があります。サーバーが localhost の場合、まったく問題はありません。ただし、外部サーバーに接続しようとすると、常に次の例外が発生します
- JBREM000200: Remote connection failed: javax.security.sasl.SaslException: Authentication failed: all available authentication mechanisms failed
- Could not register a EJB receiver for connection to remote://10.160.148.61:4447
java.lang.RuntimeException: javax.security.sasl.SaslException: Authentication failed: all available authentication mechanisms failed
JNDI を使用したリモート クライアントからの EJB 呼び出しについて説明した手順に従おうとしました。
この例外は、認証に関連する構成ファイルに何か問題があることを示しています。ここに私の ejb_client_properties ファイルがあります
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=10.160.148.61
remote.connection.default.port = 4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connection.default.username=tan
remote.connection.default.password=f2b1c3c7d3f1e224cbf6508494cf0418
注: ユーザー tan は、サーバー上の mgt.user.properties ファイルに追加されます。add-user.bat を使用してサーバーにユーザーを追加しました。アプリケーション ユーザーも追加しました。同じ資格情報を使用してサーバーに渡します。他に何も考えられません。
私の ejb 呼び出しは次のとおりです。
final Hashtable jndiProperties = new Hashtable();
jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
InitialContext aJNDI = new InitialContext(jndiProperties);
Ppi handle = (Ppi) aJNDI
.lookup("ejb:PPIEAR/PService/PConnect!com.gem.p.PConnection?stateful");
例外に関連する多数のスレッドが表示されますが、修正できません:(誰か助けてください.
また、サーバーに正規の SSL 証明書をインストールしています。それを処理するために何か特別なことをする必要がありますか?
また、注意: 私のサーバーはスタンドアロン モードで実行されています。