Hi
I have a problem whereby Hibernate will not authorize with MySQL. I have JNDI connection defined in Resin 3.0.9 as follows:
<database>
<jndi-name>jdbc/ssweb</jndi-name>
<driver type="org.gjt.mm.mysql.Driver">
<url>jdbc:mysql://127.0.0.1:3306/ssweb</url>
<user>testuser</user>
<password>password</password>
</driver>
<prepared-statement-cache-size>8</prepared-statement-cache-size>
<max-connections>20</max-connections>
<max-idle-time>30s</max-idle-time>
</database>
I am using Hibernate version 2.1.7 and have defined the session factory as follows:
<hibernate-configuration>
<session-factory>
<property name="connection.datasource">java:comp/env/jdbc/ssweb</property>
<property name="show_sql">true</property>
<property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
<mapping resource="data/Customer.hbm.xml"/>
</session-factory>
</hibernate-configuration>
I can connect to the database without a problem using standard Java as follows:
<%
Context c = new InitialContext();
DataSource d=(DataSource)c.lookup("java:comp/env/jdbc/ssweb");
Connection cn=d.getConnection();
PreparedStatement ps=cn.prepareStatement("SELECT * FROM Customers");
ResultSet rs=ps.executeQuery();
while (rs.next()) {
out.println(rs.getString("firstName"));
}
rs.close();
cn.close();
%>
however when I try to use Hibernate with:
<%@page import="java.util.Iterator, ss.app.*, ss.data.*,net.sf.hibernate.*"%>
<%
net.sf.hibernate.Session s= HibernateHelper.currentSession();
Transaction tx=s.beginTransaction();
Customer c=new Customer();
c.setLogon("tester");
c.setFirstName("Test");
c.setLastName("Customer");
s.save(c);
tx.commit();
tx = s.beginTransaction();
Query query=s.createQuery("select * from Csutomers");
for (Iterator it=query.iterate(); it.hasNext();) {
c = (Customer) it.next();
out.println("Customer: " + c.getFirstName() );
}
tx.commit();
%>
I get the following error:
java.sql.SQLException: Invalid authorization specification message from
server: "Access denied for user 'sa'@'localhost' (using password: NO)"
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1997)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1906)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:2520)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:817)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1786)
at com.mysql.jdbc.Connection.<init>(Connection.java:450)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
at com.caucho.sql.DriverConfig.createDriverConnection(DriverConfig.java:448)
at com.caucho.sql.ManagedConnectionImpl.initDriverConnection(ManagedConnectionImpl.java:236)
at com.caucho.sql.ManagedConnectionImpl.<init>(ManagedConnectionImpl.java:133)
at com.caucho.sql.ManagedFactoryImpl.createManagedConnection(ManagedFactoryImpl.java:122)
at com.caucho.jca.ConnectionPool.create(ConnectionPool.java:791)
at com.caucho.jca.ConnectionPool.allocatePool(ConnectionPool.java:661)
at com.caucho.jca.ConnectionPool.allocate(ConnectionPool.java:618)
at com.caucho.jca.ConnectionPool.allocateConnection(ConnectionPool.java:515)
at com.caucho.sql.DataSourceImpl.getConnection(DataSourceImpl.java:95)
at com.caucho.sql.DBPool.getConnection(DBPool.java:549)
at net.sf.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:56)
at net.sf.hibernate.impl.BatcherImpl.openConnection(BatcherImpl.java:289)
at net.sf.hibernate.impl.SessionImpl.connect(SessionImpl.java:3361)
at net.sf.hibernate.impl.SessionImpl.connection(SessionImpl.java:3321)
at net.sf.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:40)
at net.sf.hibernate.transaction.JDBCTransactionFactory.beginTransaction(JDBCTransactionFactory.java:19)
at net.sf.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:2251)
at _jsp._hibertest__jsp._jspService(/hibertest.jsp:4)
at com.caucho.jsp.JavaPage.service(JavaPage.java:61)
at com.caucho.jsp.Page.pageservice(Page.java:557)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:141)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:163)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:207)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:249)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:327)
at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:450)
at com.caucho.util.ThreadPool.run(ThreadPool.java:394)
at java.lang.Thread.run(Thread.java:595)
Any ideas???
Thanks
Dave
|