tomcat 中的领域资源和 context.xml

Realm Resource and context.xml in tomcat

我正在寻找有关 JNDI 领域与资源的一些说明。

我的应用程序中有一个 LDAP 领域和一个 数据库资源 。它们当前驻留在 META_INF/contex.tmlweb.xml 中的 <resource-ref> 指向资源。

我正在尝试将这两项移入 tomcat 并移出我的应用程序。

在 linux 上,我将 <Realm className="org.apache.catalina.realm.JNDIRealm"....<Resource name="UserDatabase".... 都放在 $CATALINA_HOME/conf/context.xml 中,所有 "seems" 都可以正常工作,但是,我不确定这是执行此操作的正确方法。

当我在 mac 上尝试类似的设置时,tomcat 似乎吓坏了并进入一种模式,它不断提示我在管理器 GUI 上输入密码,这意味着可能有一些非常糟糕的事情发生了。

将这些资源移出我的本地应用程序的最佳实践和最佳 "location" 是什么 - 我是否需要在 web.xml 中做任何事情来告诉它 "look up" 这些来自服务器的资源。

Tomcat 的配置文件是通用的,对所有应用程序都有效(当然,除非您根据别名限制了它们的某些条目)。因此,如果您计划在同一个实例上拥有多个应用程序 运行,实际上每个应用程序将其本地资源作为其自己的文件的一部分提供并不是一个坏主意。如果它只有一个应用程序,则主要取决于您,引入更改时更容易的是什么 - 修改应用程序并重新部署或修改服务器并重新启动。

查看 this pretty old post 以了解优先读取哪些文件的详细信息。在您的情况下,您应该可以在 Tomcat 内使用 /conf/context.xml 或在应用程序内使用 /META-INF/context.xml。

至于稍后查找资源 - 不,您不需要做任何额外的事情。直接在代码中执行此操作或注入它们应该都可以正常工作。

您在 Mac 上描述的内容听起来很有趣,尤其是如果它适用于 Linux。也许 context.xml 文件有一行结束问题?如果您还没有检查 Tomcat 日志文件,它们可能会告诉您问题所在。