Java Tomcat没有执行正确的领域
我正在开发一个我最近继承的Tomcat7WebApp。我们正在进行从Tomcat5.5的迁移 webapp使用tomcat域来处理ldap/sql身份验证的组合 当我定义context.xml时,如下所示Java Tomcat没有执行正确的领域,java,xml,tomcat,context.xml,Java,Xml,Tomcat,Context.xml,我正在开发一个我最近继承的Tomcat7WebApp。我们正在进行从Tomcat5.5的迁移 webapp使用tomcat域来处理ldap/sql身份验证的组合 当我定义context.xml时,如下所示 <Context docBase="*******" reloadable="false"> <Realm className="com.******.tomcat.auth.LdapSqlRealm" **** /> <R
<Context docBase="*******" reloadable="false">
<Realm className="com.******.tomcat.auth.LdapSqlRealm"
****
/>
<Resource name="jdbc/*****"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
testWhileIdle="true"
testOnBorrow="true"
testOnReturn="false"
validationQuery="SELECT 1"
validationInterval="30000"
timeBetweenEvictionRunsMillis="60000"
maxActive="15"
maxIdle="15"
maxWait="30000"
initialSize="10"
removeAbandonedTimeout="60"
removeAbandoned="true"
logAbandoned="true"
minEvictableIdleTimeMillis="60000"
numTestsPerEvictionRun="2"
jmxEnabled="true"
jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;
org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
username="*****"
password="*****"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="*****"
/></Context>
我可以在日志中看到我的领域正在初始化,但当我进行身份验证(使用basic)时,它不使用我的领域
如果我在server.xml文件中定义域,它就可以正常工作
有没有想过为什么我不能在context.xml中定义它
我们的context.xml文件实际上位于cont/Catalina/localhost/*****.xml中
我尝试过从零开始使用简单领域,或者RealmBase的扩展,它们都做同样的事情
谢谢,
Travis发现我的server.xml中的
标记中有一个额外的
标记,它弄乱了我的context.xml文件
小山蒂给了我一个通风报信,建议使用一个普通的tomcat版本,我最终没有这么做,但我比较了两者的server.xml,马上发现了这个问题。但愿我能早点想到。当您在context.xml文件中而不是在server.xml中定义时,会发生什么?这是否与根本没有定义领域相同?当我在上下文中定义领域时(相对于server.xml),我看不到从我的领域中记录的任何内容。然而,它确实表明它正在RealmBase中调用函数。我继承的领域确实扩展了RealmBase。所以它看起来只调用基本代码,而不是我的扩展。您的领域实现名为“com.*****.tomcat.auth.LdapSqlRealm”。包含此类的库在哪里?在您的服务器中是否有任何其他具有相同名称+包的类?它是一个自定义库,被放入tomcat的lib文件夹中。我对第二个问题有点困惑,但它与应用程序(不同的项目/jar)是分开的,这是很好的。作为概念证明,您是否尝试过开发单个自定义领域并将其部署到空应用程序上?(我的意思是:一个没有代码的web应用程序;只是一个用于测试的虚拟HTML)!祝贺