2016-11-13 6 views
0

하여 EJB 구현 나는 JNDI 네임 스페이스에 새로운 오전 나는 아래의 코드조회 JNDI 이름

InitialContext ctx; 
     try { 
      ctx = new InitialContext(); 
      ctx.lookup("?????"); 
     } catch (NamingException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

를 통해 서비스 클래스에서 내 EJB 클래스를 조회하려고하지만 정말 단서가없는 것 내부 검색을 수행합니다. 나는 jndi 이름이 거기에 있다는 것을 알고있다. 하지만 어디에서 ejb 클래스의 jndi 이름을 얻을 수 있습니까? 나는이 일에 익숙하지 않아 JNDI를 배우는 데 많은 시간을 할애 할 수 없다.

+0

을 정의합니다. 따라서 적절한 대답은 [Enterprise Beans 액세스] (http://docs.oracle.com/javaee/6/tutorial/doc/gipjf.html) 문서를보고 bean의 JNDI 이름을 자세히 작성하는 것입니다. 또는 훨씬 빨리 애플리케이션 서버의 시작 로그를 살펴보고 Bean의 JNDI 이름에 관한 항목이 있어야합니다. – Leonardo

답변

0

서버 로그 파일을 참조하십시오. EJb 빈이 전개 될 때. 그것은 다음과 같은 "xyz.ear"배포 배포 단위 subdeployment "샘플 웹 1.0.0.war"에 SampleImpl라는 이름의 세션 빈에 대해이

JNDI 바인딩 같은입니다 같습니다

EJB bean을 검색하는 샘플 코드.

final Hashtable jndiProperties = new Hashtable(); 
jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming"); 
final Context context = new InitialContext(jndiProperties); 
SampleIf sif = (SampleEJBIf) context.lookup("java:app/sample-ejb-1.0-SNAPSHOT/SampleImpl"); 

다른 방법은 그것은 로컬, 원격, 아니 인터페이스 보면, 여러분의 빈을 설계해야하는 방법에 따라 달라 조회 경로

java:global/pms/pms-web-1.0.0/SampleClass!com.etipl.pms.x12.SampleClass 
java:app/pms-web-1.0.0/SampleClass!com.etipl.pms.x12.SampleClass 
java:module/SampleClass!com.etipl.pms.x12.SampleClass 
java:global/pms/pms-web-1.0.0/SampleClass 
java:app/pms-web-1.0.0/SampleClass 
java:module/SampleClass