Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat没有执行正确的领域_Java_Xml_Tomcat_Context.xml - Fatal编程技术网

Java Tomcat没有执行正确的领域

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

我正在开发一个我最近继承的Tomcat7WebApp。我们正在进行从Tomcat5.5的迁移

webapp使用tomcat域来处理ldap/sql身份验证的组合

当我定义context.xml时,如下所示

<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)!祝贺