2013-03-21 3 views
0

내 Jboss As 7.1 서버에 SessionServiceBean이라는 세션빈을 배치했습니다. 내가 얻을JNDI : EJB를 찾을 수 없습니다.

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

을 : 이제 난 내 JUnit 테스트 케이스에서 빈을 조회하려고하면

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 

: 배포에서 나는 콩에 대한 올바른 JNDI 식별자를 듣고 콘솔에서 다음과 같은 출력을 얻을 예외 서버가 빈 찾을 수 없습니다 것을 말해 :

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 식별자로이 오류를 이해 해달라고 로그에 출력을 matchs 내 클라이언트는 반드시 연결을위한 올바른 서버.

인증에 사용하는 사용자가 jndi 조회에 필요한 권한을 가지고 있지 않습니까? 나는 실제로 이것이 작동하지 않는 이유를 전혀 모른다. 원격 ejbs로 처음으로 작업했습니다.

답변

0

이 AppYntly 오류는 java:global을 JNDI 식별자로 유지하고있었습니다.

실무 조회는 이제 다음과 같습니다

service = (SessionService) jndiCtx.lookup("/replay-ear/account-ejb/SessionServiceBean!de.replay.account.SessionService"); 
관련 문제