无法创建PoolableConnectionFactory(用户'root'@'localhost'拒绝访问(使用密码:YES))

时间:2010-07-21 12:44:36

标签: java mysql tomcat connection-pooling

我最近在我的localhost上部署了一个有效的webapp到亚马逊网络服务。 我遇到的问题是 - 尽管context.xml的用户名为'james',否则异常stacktrace会另外提及。

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)?我该如何解决这个问题?我也重新启动了Web服务器,但它还没有生效。

先谢谢。

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>

您可以点击页面上的LoginRegister来查看相关信息: http://184.73.118.76/Links.jsp

我需要做些什么才能使context.xml更改生效? 我已经采取了两项行动: 1. WEB-INF中的touch web.xml
2.重启tomcat服务器。

在这里迫切需要帮助。

再次感谢。 詹姆斯。

2 个答案:

答案 0 :(得分: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] / [hostname] /,位于单个文件中   应用程序文件中的/META-INF/context.xml。如果是网络   应用程序打包为WAR,然后是/META-INF/context.xml   复制到$ CATALINA_BASE / conf / [enginename] / [hostname] /并重命名为   匹配应用程序的上下文路径。一旦这个文件存在,它就会   如果带有较新的/META-INF/context.xml的新WAR,则不能替换   放在主持人的appBase中。

答案 1 :(得分:0)

确保没有名为$ CATALINA_BASE / conf / Catalina / localhost / yourapp.xml的文件,或者它不包含使用用户名'james'的同一数据库的其他数据源定义。