장 126 호환성 언급 ". 자바 SE와 Java EE 클라이언트에서 사용하는 전통적인 JNDI 프로그래밍 모델을 지원"OSGI JNDI는 비 OSGI 코드의 JNDI 호출과 공존 할 수 있습니까? <a href="http://www.osgi.org/Download/Release5" rel="noreferrer">OSGI Enterprise Release 5 specification</a>의
및 OSGI-인식 코드를 사용 :
는 "은 OSGi 모르고 클라이언트와 JNDI 컨텍스트 공급자가 JRE JNDI 구현에 연결하는 정적 메소드를 사용하는의 InitialContext 클래스는에 대한 액세스를 제공합니다. 제공자의 컨텍스트와 제공자는 정적 NamingManager 메소드를 사용하여 객체 변환을 수행하고 URL 컨텍스트를 찾습니다. 이 전통적인 모델은 OSGi를 인식하지 못하므로이 OSGi 인식 부족의 결과가 관리되는 경우에만 안정적으로 사용할 수 있습니다. "
하지만,이 텍스트는 "기존의"코드 OSGi 번들 내에서 실행하거나, 또한 OSGi 컨테이너 외부의 코드에 적용되는 경우 그것은 나에게 명확하지 않다,은 OSGi 컨테이너에 포함되는 시나리오에서 F 전 지원서.
임베딩 시나리오에서 JNDI 호출을 수행하는 OSGI 컨테이너 외부와 내부 모두에 응용 프로그램 코드가있을 수 있으며 동일한 JVM에서 실행될 때 JNDI 구현을 공유합니다.
질문 :가 포함 된 OSGI 용기에 OSGI의 JNDI 구현 실행은 JNDI 평소처럼 호출, 또는 "OSGI 인식은"필요한 몇 가지 이식은 그 수행하기 위해 용기 외부에 OSGI-인식 코드를 허용해야?
Apache Karries 2.3.0 (Apache Aries JNDI 1.0.0 사용)에서이 작업을 시도하는 것은 Apache Aries가 JNDI 클라이언트 호출을 OSGI 번들에서 시작해야하므로 작동하지 않습니다.
부분 스택 트레이스 :
javax.naming.NoInitialContextException: The calling code's BundleContext could not be determined.
at org.apache.aries.jndi.OSGiInitialContextFactoryBuilder.getInitialContext(OSGiInitialContextFactoryBuilder.java:46)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
at javax.naming.InitialContext.init(InitialContext.java:242)
at javax.naming.InitialContext.<init>(InitialContext.java:192)
질문 :이 올바른 행동인가, 또는 거기에 이러한 제한으로 위반 내가 그 참조 할 수 있습니다 사양의 섹션입니까?