Netbeans与tomcat context.xml有关

时间:2015-08-20 01:48:58

标签: java xml tomcat netbeans jndi

我有以下JNDI领域ldap“东西”曾经驻留在META-INF/context.xml

 // Obviously i changed some of the code here to hide certain key information
  <Realm className="org.apache.catalina.realm.JNDIRealm" 
     connectionName="uid=admin,ou=system" 
     connectionPassword="<PASSWORD>" 
     debug="99" 
     roleBase="<ROLEBASE>"
     roleName="cn" roleNested="true" 
     roleSearch="(uniqueMember={0})" 
     roleSubtree="true" 
     userBase="USERBASE" 
     userSearch="(mail={0})"
     connectionURL="ldap://MACHINE:10389"

/&GT;

现在我已接近工作的生产阶段,我想将此文件移到$CATALINA_BASE/conf/context.xml文件中,以便我可以进行基于机器的配置。我在两个linux机箱上做到这一点没有问题,但是,当我在我的开发机器上运行并尝试运行时(在netbeans中)我得到了这个提示

enter image description here

我在这里缺少什么钥匙吗?即使我键入了正确的密码,netbeans也会进入一个奇怪的循环并且不会输入密码。一旦我删除了Realm def,一切正常。

我在这里做了一件非常错的事吗?

1 个答案:

答案 0 :(得分:0)

我也遇到了这个问题,我可以通过粘贴来自server.xml的UserDatabaseRealm来解决这个问题:

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                   resourceName="UserDatabase"/>

进入tomcat管理器webapp context.xml

webapps\manager\META-INF\context.xml

以及文件夹中的manager.xml

%APPDATA%\NetBeans\<netbeans version>\apache-tomcat-<version>_base\conf\Catlina\localhost

我相信你只需要将它粘贴到%APPDATA%\NetBeans\<netbeans version>\apache-tomcat-<version>_base\conf\Catlina\localhost\manager.xml文件夹中,但是为了安全起见它并没有什么坏处。

作为参考,这就是我的manager.xml文件现在的样子,一切都按预期工作了:

<Context docBase="${catalina.home}/webapps/manager" antiResourceLocking="false" privileged="true">
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
           resourceName="UserDatabase"/>
</Context>

希望这也适合你!这是一个非常令人讨厌的问题,我在一个小时左右摸不着头脑。

编辑:注意:当然,conf\Catalina\localhost\manager.xml文件的位置可能不同,可能不在AppData \ Roaming文件夹中。要获取实际位置,您可以从Tomcat中的服务器属性中获取它。转到工具&gt;服务器并查找Catalina Base:

中列出的路径