2010-03-02 4 views
2

잘못된 초기 컨텍스트를 가져 오는 jboss 웹 서비스가 있습니다. 서비스 루트 디렉토리에있는 jndi.propertiesjava.naming.factory.initial을 사용하고 인 jndi.properties의 jboss가 아닌 jndi.properties에서 사용하고 싶습니다. 개미 파일에서 클래스 경로에 jndi.properties을 넣고 아카이브에 복사했는지 확인했지만 서비스는 여전히 NamingContextFactory이됩니다. 팩토리가 올바르게 설정되도록 jndi.properties이 사용 된 것을 어떻게 알 수 있습니까?클래스 경로에 여러 개의 jndi.properties를 정렬합니다.

불행한 상황으로는 초기 컨텍스트 팩토리가 패키지 jndi.properties 파일에 지정된 것으로 예상되는 써드 파티 jar를 가지고 있지만, 이것을 jboss에서 실행하면 NamingContextFactory이됩니다. 모든게 깨지지 않고 jboss jndi.properties 파일을 바꿀 수 없습니다.

+0

일부 JBoss 클래스 로딩 체조를 수행해야 할 수도 있습니다. JAR은 EAR 또는 WAR의 일부입니까? – skaffman

+1

그것은 EAR의 일부입니다. – insipid

답변

2

jndi.properties 파일이 클래스 경로의 루트에있는 경우 InitialContext은 두 파일을 병합하려고 시도하지만 우승 한 파일은 다소 차이가있을 수 있습니다.

확실하게하려면 InitialContext에는 Hashtable 속성을 사용하는 생성자가 있으며 여기서 명시 적으로 지정할 수 있습니다. 이 경우 jndi.properties을 통한 암시 적로드가 바람직합니다. 언제든지 jndi.properties 대상을 Properties 개체 (하위 클래스는 Hashtable)로로드하고 생성자로 전달할 수 있습니다.

+0

제 3 자 라이브러리가 초기 컨텍스트 요청을 제어하지 않는다는 것을 포함하도록 내 게시물을 수정했습니다. :( – insipid

관련 문제