ログファイルを汚染しているグラスフィッシュの迷惑なメッセージの原因を突き止めようとしています.
セットアップを簡素化するために、3.1.2.2 を実行する 2 つの glassfish サーバーがあります。
サーバー A には Web サービスがデプロイされており、Web サービスの役割と、sun-ejb-jar.xml および sun-application.xml のマッピングを使用して定義された証明書ベースのセキュリティを使用しています。
サーバー B にはリモート EJB がデプロイされており、セキュリティは構成されていません。
次のようなコードを使用して、サーバー A の Web サービスからサーバー B のリモート EJB を呼び出す場合:
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
props.setProperty("org.omg.CORBA.ORBInitialHost", server.getServer());
props.setProperty("org.omg.CORBA.ORBInitialPort", Integer.toString(server.getEjb3Port()));
InitialContext ic = new InitialContext(props);
return ((MyIF)ic.lookup(MyIF.class.getName())).doWork();
サーバー A のログには次のログが記録されますが、EJB 呼び出しは期待どおりに機能します。
[#|2012-09-20T08:43:42.141+0100|SEVERE|glassfish3.1.2|javax.enterprise.system.core.security.com.sun.enterprise.iiop.security|_ThreadID=26;_ThreadName=Thread-2;|IIOP1002: Principal propagation: Cannot find principal information in subject|#]
このエラーの経験があり、この問題を解決する方法を知っている人はいますか?
メッセージに関するOracle ドキュメントはあまり役に立ちません。
IIOP1002 プリンシパルの伝播: サブジェクトにプリンシパル情報が見つかりません
原因: サブジェクトにプリンシパル情報が見つかりません。
処置: ID伝播の構成設定を確認してください