Недавно я развернул рабочий веб-сайт на моем локальном хосте для веб-сервисов 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.
Отчаянно нужна помощь здесь.
Еще раз спасибо. Джеймс.
Это похоже на ошибку MySQL. Думаю, вам нужно настроить ваш сервер mysql на прием корневого входа с локального хоста или лучше: настройте правильного пользователя! – thatsdisgusting
Ошибка MySQL? Я так не думаю. Если это была ошибка mysql, зачем она пыталась войти в систему с «root» вместо «james», как указано в context.xml? «james» - это правильный пользователь. Даже если мы изменим имя пользователя на «root», оно все равно не сработает, потому что файл cached (я считаю, что это причина) может иметь некоторое значение для пароля, которое не соответствует с фактическим паролем базы данных root. – James
можете ли вы разместить конфигурацию dbcp? –