현재 WebSphere 서버에 배치하기위한 응용 프로그램을 개발 중입니다. 응용 프로그램은 원격 EJB로 구현 된 서비스에 대한 액세스를 제공하는 사내 서비스 공급자를 사용해야합니다. Service Provider Bean은 하드 코드 된 jndi 이름을 사용할 수 있습니다.WebSphere JNDI 조회를 허용하도록 Tomee 구성
개발 중에 Tomee를 사용하고 있으며 일반적으로 모두 잘 작동합니다. 한 가지를 제외한 모든 것 : ServiceProvider는 "cell/persistent/configService"의 jndi-lookup을 수행합니다. 이제 이러한 서비스를위한 모의 EJB가 포함 된 모의 귀 (mock ear)를 만들려고했습니다. 나는 그들을 배치 할 수 있고, 나는 "java : global/framework-mock-ear-1.0.0-SNAPSHOT/framework-mock-impl/ConfigServiceMock"과 같은 jndi-name을 사용하여 응용 프로그램에서 그것들에 접근 할 수있다. 의 JNDI 조회를 사용하여 액세스 할 수없는 것 같다 "셀/지속/configService은"... 지금은 들어 내 모의 구현에 OpenEJB를-jar.xml 파일을 추가 :
<openejb-jar>
<ejb-deployment ejb-name="ConfigServiceMock">
<jndi name="cell/persistent/configService"
interface="de.thecompany.common.services.config.ConfigService"/>
</ejb-deployment>
</openejb-jar>
그리고 나는 볼 수 있습니다
INFORMATION: Jndi(name=cell/persistent/configService) --> Ejb(deployment-id=ConfigServiceMock)
을하지만 어떻게 다른 귀는 그 이름을 사용하여이 빈에 액세스 할 수 있도록하는 지금 생각을 가지고 시작하는 동안, 그 빈은 그 이름에서 제대로 등록 할 것으로 보인다.
서비스 제공자 부품이 제공되며이를 변경할 수 없으므로 하드 코딩 된 jndi 이름을 변경하지 마십시오. 우리는 분명히 그렇게하고 싶지만 아무 것도 변경할 수는 없습니다.
jndi 이름으로 {deploymentId}/{interfaceClassName}을 (를) 시도하고 bean을 찾을 수 있는지 확인하십시오. – Abhin
예, 작동하지만 예를 들어 게시물에 글을 올렸을 때 이름을 변경할 수 없습니다. 내가 사용해야하는 컴파일 된 라이브러리. –
나는 당신의 클라이언트/yourEB에서 그 이름을 사용해서 찾아보기를 의미했다. 조회를 어디에서하고 있습니까? – Abhin