1

我目前在我的 $CATALINA_HOME/lib 目录中有一些库来处理一些系统/数据库身份验证。其中一个文件 foo.jar 包含一个扩展类

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) {} 

有任何想法吗?

4

1 回答 1

1

您还需要在您的应用程序的 context.xml 中具有关联的 ResourceLink。例如,如果您的 webapp 名为 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>

如果你META-INF/context.xml在你的war文件中包含这些链接,tomcat会将它复制到conf/Catalina/localhost/foo.xml第一次部署应用程序时(尽管不是在那之后的任何时间,因为你打算在那里进行更改并能够再次部署而不会破坏自定义)

于 2013-02-19T20:30:02.133 回答