我的任务是将我们的Tomcat服务器从6.0迁移到8.5。您可以想象,设置配置会有很多不一致之处,而且我对设置Web服务器的知识非常有限。我需要做的是,在新的Tomcat服务器上运行我们的自定义应用程序,就是创建一个自定义Realm,以便我们的应用程序可以通过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描述符之后,我不得不为它设置一个监听器。在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)
如果我发布了太多信息,请原谅我。我之前从未设置/配置过Web服务器,因此我的知识有限。我不得不离开的是Tomcat 6.0的配置文档,安装在运行Java 7的Windows 2008服务器上。任何帮助都将不胜感激!