一尘不染

java:comp / env未绑定

tomcat

我目前在$ 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) {}

有任何想法吗?


阅读 240

收藏
2020-06-16

共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>

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

2020-06-16