1

我的任务是将我们的 Tomcat 服务器从 6.0 迁移到 8.5。可以想象,设置配置会有很多不一致之处,而且我对设置 Web 服务器的了解非常有限。为了让我们的自定义应用程序在新的 Tomcat 服务器上运行,我需要做的是创建一个自定义领域,以便我们的应用程序可以通过他们在 Active Directory 中的身份证来验证用户。自定义领域是在 conf/server.xml 文件中配置的。

<Realm className="JEDRealm"
           connectionName="CN=webapps,OU=Admin,OU=[OU],dc=[DC],DC=ds,DC=[DC],DC=[DC],DC=[DC]"
           connectionPassword="[PASSWORD]" 
           connectionURL="[SERVER URL]" 
           alternateURL="[SERVER URL]" 
           referrals="follow"
           roleBase="DC=pod,dc=ds,DC=[DC],DC=[DC],DC=[DC]"
           roleName="cn"
           roleSearch="(&amp;(member={0})(objectclass=group))"
           roleSubtree="true"
           userBase="DC=pod,DC=ds,dc=[DC],DC=[DC],DC=[DC]"
           userSearch="sAMAccountName={0}" 
           userSubtree="true" />

然后我创建了一个自定义的 mbeans-descriptor 文件,将它放在与 JEDRealm.class 文件相同的目录中(这是 JNDIRealm.java 的修改版本,然后编译为 JEDRealm.class)。

所以在创建 JED_mbeans-descriptor 之后,我必须为它设置一个监听器。在 Tomcat 6.0 中,有:

<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" 
  descriptors="JED_mbeans-descriptors.xml"/>

但是,在 Tomcat_8.​​5 中,ServerLifecycleListener 已经停止使用,我不确定在哪里设置:

descriptors="JED_mbeans-descriptors.xml"

这是我尝试启动 Tomcat 时的日志文件副本。

 03-Oct-2017 17:33:41.907 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin 
[SetPropertiesRule]{Server/Listener} Setting property 'descriptors' to 'JED_mbeans-descriptors.xml' 
did not find a matching property.
 03-Oct-2017 17:33:42.079 SEVERE [main] org.apache.tomcat.util.digester.Digester.startElement 
Begin event threw error java.lang.NoClassDefFoundError: JEDRealm (wrong name: org/apache/catalina/realm/JEDRealm)

请原谅我,如果我发布了太多信息。我以前从来没有设置/配置过网络服务器,所以我的知识有限。我所要做的只是 Tomcat 6.0 的配置文档,安装在 Windows 2008 服务器上,运行 Java 7。任何帮助将不胜感激!

4

0 回答 0