2013-02-19 1 views
1

일부 시스템/DB 인증을 처리하기 위해 현재 $ CATALINA_HOME/lib 디렉토리에 몇 개의 라이브러리가 있습니다. foo.jar 파일 중 하나는java : comp/env가 바인드되지 않았습니다.

org.apache.catalina.realm.DataSourceRealm 

까지 확장되어 인증에 사용되는 클래스를 포함합니다. 이 파일은 server.xml에 저장하고있는 몇 가지 속성에 액세스해야합니다. 그러나 액세스하려고하면 오류가 발생합니다. 코드 세그먼트는 다음과 같습니다.

try{ 
Context ctx = new InitialContext(); 
Context envCtx = (Context)ctx.lookup("java:comp/env"); 

String property = (String)envCtx.lookup("property"); 

} catch(Exception ex) {} 

아이디어가 있습니까?

답변

1

응용 프로그램의 context.xml에도 관련 ResourceLink가 있어야합니다. 당신의 웹 애플리케이션이 foo는 이름을 지정하면 당신이 당신의 전쟁 파일이 링크가있는 META-INF/context.xml을 포함하는 경우 예를 들어,

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE Context> 

<Context antiJARLocking="true"> 
    <ResourceLink name="property" 
     type="classname" 
     global="propertyNameInGlobalNamingResources" /> 
    ... 
</Context> 

으로 conf/Catalina/localhost/foo.xml라는 파일이 있어야한다, 바람둥이은 conf/Catalina/localhost/foo.xml 처음에 그것을 복사합니다 응용 프로그램이 배포됩니다 (사용자 설정을 변경하고 사용자 정의를 방해하지 않고 다시 배포 할 수 있기 때문에 언제든지 가능).

+0

고마워요! 나는 그것의 자원 연결 측면을 놓치고 있었다. –

+0

@PSU_Kardi, 문제 없어요, 그 물린 날 몇 번뿐. – Lucas