2015-12-15 6 views
2

Я работаю над tomcat 7 webapp, который я недавно унаследовал. Мы работаем над переходом с Tomcat 5.5.Tomcat не выполняет правильную область

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> 

Я могу видеть мою область инициализации в журналах, но когда я иду к аутентификации (с использованием основной) он не использует мое царство.

Если я определяю область в файле server.xml, она работает нормально.

Любые мысли о том, почему я не могу определить его в контексте .xml.

Наш файл context.xml на самом деле находится в прод/Catalina/LOCALHOST/*****. XML

Я попытался начать с нуля с помощью простых сфер, или расширений RealmBase и все они делают то же самое вещь.

Спасибо, Travis

+0

Когда вы определяете свой в своем файле context.xml, а не в server.xml, что происходит? Это то же самое, что если бы ни одна область не была определена вообще? –

+0

Когда я определяю сферу в контексте (по сравнению с server.xml), я не вижу, чтобы что-либо регистрировалось из моей области. Однако он показывает, что он вызывает функции в RealmBase. Область, которую я унаследовала, расширяет RealmBase. Таким образом, похоже, что он вызывает только базовый код, а не мои расширения. – marbletravis

+0

Реализация вашего реального мира называется «com. ******. Tomcat.auth.LdapSqlRealm». Где находится библиотека, содержащая этот класс? Есть ли на вашем сервере какой-либо другой класс с тем же именем + пакет? –

ответ

1

Оказывается, что у меня был дополнительный <Context /> тег в моем <Host /> теге в моей server.xml, который был Мессинг мой файл context.xml.

Little Santi опрокинул меня, предложив ванильную сборку tomcat, которую я не делал, но я сделал сравнение server.xml с двумя и сразу заметил проблему. Хотел бы я подумать об этом раньше.

+0

Хорошо для вас! Поздравления. –