Невозможно создать PoolableConnectionFactory (доступ запрещен для пользователя 'root' @ 'localhost' (используется пароль: YES)) - PullRequest
1 голос
/ 21 июля 2010

Я недавно развернул работающее веб-приложение на своем локальном хосте для веб-сервисов Amazon.Проблема, с которой я сталкиваюсь, - хотя context.xml имеет имя пользователя как 'james', трассировка стека исключений упоминает иначе.

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.

Срочно нужна помощь.

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

Ответы [ 2 ]

1 голос
/ 11 июля 2011

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

Ссылка на контейнер контекста Tomcat

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

0 голосов
/ 04 декабря 2011

Убедитесь, что нет файла с именем $ CATALINA_BASE / conf / Catalina / localhost / yourapp.xml или что он не содержит другого определения источника данных в той же базе данных с именем пользователя 'james'.

...