동적

2010-08-04 2 views
2

가 나는이처럼 보이는 EJB가 글래스 피시 (3)에서 응용 프로그램을 개발하고 있어요는 EJB 찾고 : (동일한 응용 프로그램 내에서 실행)동적

@LocalBean 
@Stateless 
public class MyBean { 
    public void doSomething() {} 
} 

내 클라이언트 코드은 다음과 같습니다

MyBean mb = (MyBean) InitialContext.doLookup(MyBean.class.getName()); 

몇 가지 출처에 따르면 유효한 조회 방법이어야하지만 NameNotFoundException이 발생합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

2

어떤 출처에 따르면? 개인적으로 EJB 3.1에 지정된 이식 가능한 JNDI 이름을 사용합니다. 참조 :

에 의해 켄 삭스

  • Application-specified Portable JNDI Names에 의해 글래스 피쉬의 EJB 자주 묻는 질문
  • Portable Global JNDI Names에서
  • What is the syntax for portable global JNDI names in EJB 3.1?, 내가 모듈을 사용 -scoped 또는 응용 프로그램 범위의 JNDI 이름입니다.

    둘째, GlassFish는 배포시 휴대용 JNDI 이름을 기록합니다.

  • +1

    출처 : http://www.devx.com/tips/Tip/35010 및 http://www.roseindia.net/ejb/ejb-lookup.shtml. 그들 둘 다 완전히 완전히 똥으로 가득한 것 같습니다. –

    +2

    @Mike EJB 3.1 이전에는 JNDI 이름이 표준화되지 않았으므로 일반적인 규칙은 없으며 JNDI 이름은 응용 프로그램 서버에 따라 다릅니다. 추신 : 나는 roseindia 및 devx "기술 팁"을 무시하는 경향이 있습니다. 나는 고품질의 자원으로 간주하지 않습니다. –