我正在寻找关于JNDI Realms vs Resources的一点澄清。
我的应用程序中有 LDAP 域和数据库资源。它们目前位于META_INF/contex.tml
,<resource-ref>
中的web.xml
指向该资源。
我正在尝试将这两个项目移到tomcat中并从我的应用程序中移出。
在linux上,我将<Realm className="org.apache.catalina.realm.JNDIRealm"....
和<Resource name="UserDatabase"....
放在$CATALINA_HOME/conf/context.xml
中,所有内容“似乎”都可以正常工作,不过,我不确定这是正确的方法这样做。
当我尝试在mac tomcat上进行类似的设置时似乎很烦人,并进入一种模式,它不断地提示我在管理器GUI上输入密码,这意味着可能发生了非常糟糕的事情。
将这些资源从我的本地应用程序中移出的最佳实践和最佳“位置”是什么?我是否需要在web.xml
中执行任何操作以告知它从服务器“查找”这些资源。
答案 0 :(得分:1)
Tomcat的配置文件是通用的,对所有应用程序都有效(除非您根据别名限制某些条目,例如,当然)。因此,如果您计划在同一个实例上运行多个应用程序,那么每个应用程序提供其本地资源作为其自身文件的一部分实际上并不是一个坏主意。如果它只是一个应用程序,那么它主要取决于您,以及在引入更改时更容易 - 修改应用程序并重新部署或修改服务器并重新启动。
查看this pretty old post以获取优先读取哪些文件的详细信息。在您的情况下,您可以使用Tomcat中的/conf/context.xml或应用程序内的/META-INF/context.xml。
至于稍后查看资源 - 不,你不应该做任何额外的事情。要么直接在代码中执行操作,要么注入它们应该可以正常工作。
你在Mac上描述的内容听起来很有趣,特别是如果它适用于Linux。也许有一行结束了context.xml文件的问题?检查Tomcat日志文件(如果还没有),他们可能会告诉您问题所在。