我目前在$ 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) {}
有任何想法吗?
您还需要在您的应用的context.xml中具有关联的ResourceLink。例如,如果你的web应用被命名为FOO,应该有一个名为conf/Catalina/localhost/foo.xml用
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第一次部署该应用程序的时间(尽管此后没有任何时间,因为您打算在那里进行更改并能够再次进行部署而不会破坏自定义) )
META- INF/context.xml