2009-05-07 4 views
2

내 상태없는 EJB의 JNDI 경로를 가져 오는 방법이 있습니까? 나는이 같은 EJB를 작성했다고 가정하면 :상태 비 저장 EJB를 얻는 방법 JNDI 경로?

@Stateless 
public class BookBean implements IBookBeanLocal { 

@Resource SessionContext sctx; 

.... 

@PostConstruct 
public void afterInit(){ 
    // sctx?? 
} 

} 

초기화하는 동안 BookBeans JNDI 경로를 발견 할 방법이 있나요? 초기화하는 동안 특정 빈을 전역 레지스트리에 자동 등록하려면이 옵션이 필요합니다. 그렇게 할 수있는 다른 방법이 있습니까?

답변

0

@Stateless annotation 또는 XML ejb 구성에서 원하는 jndi 경로를 작성하고 런타임에 읽을 수 있습니다.

자동 생성 된 jndi 경로를 찾는 것이 번거 롭습니다.

자바 EE에서
0

6 개 JNDI 경로 위하여 표준화하고 그래서 당신은 JNDI 호출하고 있습니다 가정 https://docs.oracle.com/javaee/6/tutorial/doc/gipjf.html

에 설명되어 하나 개의 귀 내부 :

@Stateless 
public class BookBean implements IBookBeanLocal { 

    @Resource(lookup = "java:module/ModuleName") 
    private String moduleName; 

    @PostConstruct 
    public void afterInit() { 
     String jndi = "java:app/" + moduleName + "/" + getClass().getSimpleName(); 
    } 
} 

또는 모듈 이름을 받고 lookup를 통해 :

@Stateless 
public class BookBean implements IBookBeanLocal { 
    @PostConstruct 
    public void afterInit() { 
     Context ctx = new InitialContext(); 
     String jndi = "java:app/" + ctx.lookup("java:module/ModuleName") + "/" + getClass().getSimpleName(); 
    } 
} 
관련 문제