TomEE 7.0.3サーバーでejbを実行しています。 btw、これはTomee 1.7.4で動作していました。 は、私は、セットアップのtomcat-users.xmlのファイルを使用してユーザのセットTomEEでリモートからEJBを呼び出すときにAuthenticationExceptionが発生するのはなぜですか?
<tomcat-users>
<role rolename="admin" />
<role rolename="admin-gui" />
<role rolename="admin-script" />
<role rolename="manager" />
<role rolename="manager-gui" />
<role rolename="manager-script" />
<role rolename="manager-jmx" />
<role rolename="manager-status" />
<role rolename="tomee-admin" />
<user
name="admin"
password="admin"
roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status,tomee-admin" />
<role rolename="tomcat" />
<user
name="tomcat"
password="tomcat"
roles="tomcat" />
<user
name="manager"
password="manager"
roles="manager" />
</tomcat-users>
私は、ユーザーの管理者」の資格情報を提供することにより、URL http://127.0.0.1/tomee/ejbにアクセスすることができる午前を持っています。 私のserver.xmlファイルには、問題は私がリモートEJBを起動しようとすると、私のJNDIのInitialContextには、次のプロパティを使用している以下のエントリ
<Resource auth="Container" description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase"
pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase" />
と
<Realm className="org.apache.catalina.realm.LockOutRealm">
<!-- This Realm uses the UserDatabase configured in the global JNDI resources
under the key "UserDatabase". Any edits that are performed against this UserDatabase
are immediately available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase" />
</Realm>
を持っています。
java.naming.factory.initial=org.apache.openejb.client.RemoteInitialContextFactory
java.naming.provider.url=http://127.0.0.1:8082/tomee/ejb
java.naming.security.principal=admin
java.naming.security.credentials=admin
以下は、ejbを呼び出すためのコードです。
public static Object locateService(String serviceName) throws NamingException, IOException {
InputStream in = ServiceLocator.class.getClassLoader().getResourceAsStream("servicelocator.properties");
Properties p = new Properties();
p.load(in);
InitialContext ctx = new InitialContext(p);
return ctx.lookup("PaymentManagerRemote");
}
あなたは、私が正しいユーザ名とパスワードを提供していますが、私は次の例外
Apr 27, 2017 12:39:07 PM org.apache.openejb.client.EventLogger log
INFO: RemoteInitialContextCreated{providerUri=http://127.0.0.1:8082/tomee/ejb}
Exception in thread "main" javax.naming.AuthenticationException: Error while communicating with server: ; nested exception is:
javax.naming.AuthenticationException
at org.apache.openejb.client.JNDIContext.authenticate(JNDIContext.java:381)
at org.apache.openejb.client.JNDIContext.getInitialContext(JNDIContext.java:289)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)
at javax.naming.InitialContext.init(InitialContext.java:244)
at javax.naming.InitialContext.<init>(InitialContext.java:216)
at co.uk.meghdoot.core.util.ServiceLocator.locateService(ServiceLocator.java:20)
at co.uk.meghdoot.core.test.DeviceLocationTest.setUp(DeviceLocationTest.java:53)
at co.uk.meghdoot.core.test.DeviceLocationTest.main(DeviceLocationTest.java:109)
は、誰もがこの上でいくつかの光を当てることができます取得見ることができるように?
私はあなたが受け取ったエラーを送信したリンクを通過しました。AuthenticationExceptionはシリアライゼーションエラーではありません。ホワイトリストとブラックリスト、私はリモートejbを呼び出すことができるはずです、デフォルトブラックリストは変更なしで動作するはずですか? – Ajay
jaasも正しく設定しましたか(JVMシステムのプロパティ+ JAASRealm)? –
いいえ、JAASレルムを設定していません。それはtomeeの新しいバージョンの要件?いくつかのドキュメントを指摘できますか? – Ajay