2013-02-19 54 views
1

我目前在我的$ 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。例如,如果你的web應用程序被命名爲FOO,應該有一個叫做conf/Catalina/localhost/foo.xml文件具有

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

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

如果包括在WAR文件,這些鏈接META-INF/context.xml,tomcat會出來把它複製到conf/Catalina/localhost/foo.xml第一次該應用程序已部署(儘管之後沒有任何時間,因爲您打算在那裏進行更改,並且能夠在不進行定製化的情況下再次進行部署)

+0

謝謝!我錯過了它的資源鏈接方面。 – 2013-02-19 21:53:31

+0

@PSU_Kardi,沒問題,它也咬了我幾次。 – Lucas 2013-02-19 22:17:08