2010-07-21 2 views
1

Недавно я развернул рабочий веб-сайт на моем локальном хосте для веб-сервисов amazon. Проблема, с которой я сталкиваюсь, - хотя context.xml имеет имя пользователя как «james», исключение stacktrace упоминает иначе.Невозможно создать PoolableConnectionFactory (доступ запрещен для пользователя «root» @ «localhost» (с использованием пароля: ДА))

org.apache.jasper.JasperException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: javax.servlet.ServletException: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'root'@'localhost' (using password: YES)) 
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:491) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 

Он пытается подключиться к базе данных с именем пользователя 'root'. Это из-за кэширования файла (context.xml)? Как мне это решить? Я также перезапустил веб-сервер, но это не срабатывает.

Спасибо заранее.

EDIT:

Вот содержание context.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<Context antiResourceLocking="false" privileged="true" > 
    <Resource 
     name="jdbc/NetmarketDB" 
     auth="Container" 
     type="javax.sql.DataSource" 
     removeAbandoned="true" 
     removeAbandonedTimeout="30" 
     maxActive="100" 
     maxIdle="30" 
     maxWait="1000" 
     username="james" 
     password="xxxxxxxxxx" 
     driverClassName="com.mysql.jdbc.Driver" 
     url="jdbc:mysql://localhost:3306/ams"/> 
</Context> 

Вы можете видеть, что происходит, нажав на Login или Register на странице: http://184.73.118.76/Links.jsp

Что мне нужно сделать, чтобы внести изменения в context.xml? Я выполнил два действия:
1. touch web.xml в WEB-INF
2. Перезагрузите сервер tomcat.

Отчаянно нужна помощь здесь.

Еще раз спасибо. Джеймс.

+0

Это похоже на ошибку MySQL. Думаю, вам нужно настроить ваш сервер mysql на прием корневого входа с локального хоста или лучше: настройте правильного пользователя! – thatsdisgusting

+0

Ошибка MySQL? Я так не думаю. Если это была ошибка mysql, зачем она пыталась войти в систему с «root» вместо «james», как указано в context.xml? «james» - это правильный пользователь. Даже если мы изменим имя пользователя на «root», оно все равно не сработает, потому что файл cached (я считаю, что это причина) может иметь некоторое значение для пароля, которое не соответствует с фактическим паролем базы данных root. – James

+0

можете ли вы разместить конфигурацию dbcp? –

ответ

1

Проверьте свой файл $ CATALINA_BASE/conf/[enginename]/[hostname]/[webapp] .xml, по умолчанию Tomcat должен быть $ CATALINA_BASE/conf/Catalina/localhost/[webapp] .xml, tomcat создать копию вашего context.xml, и это, вероятно, не был обновлен, когда вы обновляете ваш context.xml

Tomcat Context Container Reference

$ CATALINA_BASE/CONF/[enginename]/[имя хоста] /, в отдельном файле в /META-INF/context.xml внутри файлов приложения. Если приложение web упаковано в качестве WAR, то файл /META-INF/context.xml будет , скопированный в $ CATALINA_BASE/conf/[enginename]/[имя хоста]/и переименованный в , соответствует пути контекста приложения. Как только этот файл существует, он будет заменен на , если новая версия WAR с новым /META-INF/context.xml - , размещенная в базе приложений хоста.

0

Убедитесь, что это не файл с именем $ CATALINA_BASE/конф/Каталина/локальный/yourapp.xml или что он не содержит еще одно определение источника данных в той же базе данных с именем 'Пробок.

Смежные вопросы

 Смежные вопросы