我的任务是将我们的 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="(&(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。任何帮助将不胜感激!