0

SessionServiceBeanJbossAs7.1サーバーで呼び出されたセッションBeanをデプロイしました。デプロイメント時に、コンソールに次の出力が表示され、そのBeanの正しいJNDI識別子がリッスンされます。

JNDI bindings for session bean named SessionServiceBean in deployment unit subdeployment "account-ejb.jar" of deployment "replay-ear.ear" are as follows:

java:global/replay-ear/account-ejb/SessionServiceBean!de.replay.account.SessionService
java:app/account-ejb/SessionServiceBean!de.replay.account.SessionService
java:module/SessionServiceBean!de.replay.account.SessionService
java:jboss/exported/replay-ear/account-ejb/SessionServiceBean!de.replay.account.SessionService
java:global/replay-ear/account-ejb/SessionServiceBean
java:app/account-ejb/SessionServiceBean
java:module/SessionServiceBean

JUnitテストケースでBeanを検索しようとすると、次のようになります。

service = (SessionService) jndiCtx.lookup("java:global/replay-ear/account-ejb/SessionServiceBean!de.replay.account.SessionService");

サーバーがBeanを見つけることができないという例外が発生します。

javax.naming.NameNotFoundException: global/replay-ear/account-ejb/SessionServiceBean!de.replay.account.SessionService -- service jboss.naming.context.java.jboss.exported.global.replay-ear.account-ejb."SessionServiceBean!de.replay.account.SessionService"
    at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:97)
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:178)
    at org.jboss.naming.remote.protocol.v1.Protocol$1.handleServerMessage(Protocol.java:127)
    at org.jboss.naming.remote.protocol.v1.RemoteNamingServerV1$MessageReciever$1.run(RemoteNamingServerV1.java:73)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

jndi識別子がログに出力されたものと一致し、クライアントが確実に正しいサーバーに接続されているため、このエラーを理解できません。

認証に使用しているユーザーImが、jndiルックアップに必要な権限を持っていない可能性がありますか?なぜこれが機能しないのか、私には実際にはわかりません。リモートejbsを使用するのはこれが初めてです。

4

1 に答える 1

0

明らかに、エラーはjava:globalJNDI識別子にを保持していました。

動作中のルックアップは次のようになります。

service = (SessionService) jndiCtx.lookup("/replay-ear/account-ejb/SessionServiceBean!de.replay.account.SessionService");
于 2013-03-21T16:00:19.440 に答える