RE: Problem connecting to mysql database with Tomcat and JNDI
Well, looking at your Context definition, I'm not seeing the following required element: Resource name=jdbc/address auth=Container type=javax.sql.DataSource / Thanks, Scott Stewart [Manager, Software Development] [EMAIL PROTECTED] ClearSky Mobile Media, Inc. 56 E. Pine Street Suite 200 Orlando, FL 32801 USA -Original Message- From: Robert S. Jones [mailto:[EMAIL PROTECTED] Sent: Thursday, August 21, 2003 5:35 PM To: [EMAIL PROTECTED] Subject: Problem connecting to mysql database with Tomcat and JNDI Folks, I'm having trouble connecting to a mysql database through Tomcat. I'm using Tomcat 5.0.9a with mysql 4.0.14. I have the mysql 3.0.8 JDBC driver in ${TOMCAT_HOME}/common/lib. I'm running RedHat 8.0 with a stock kernel. I've been able to connect to the database without JNDI services. I believe I have the database user set up correctly. I have been all over the web trying to figure out what the problem is. It seems like everyone is having this problem, but no two solutions are the same. FWIW I've tried a lot of this on Tomcat 4 and have had the same results. I've traced the problem to the following code from the JSP file below: conn = ds.getConnection(); Any thoughts/ideas would be greatly appreciated. I'm at the end of my rope on this. Here is the error message I'm getting. java.lang.NullPointerException org.apache.jsp.usingDataSource_jsp._jspService(usingDataSource_jsp.java:74) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:3 20) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) Here is the JSP page I'm using: [EMAIL PROTECTED] import=java.sql.*, javax.sql.*, javax.naming.*% html head titleUsing a DataSource/title /head body h1Using a DataSource/h1 % DataSource ds = null; Connection conn = null; ResultSet result = null; Statement stmt = null; ResultSetMetaData rsmd = null; try { Context context = new InitialContext(); Context envCtx = (Context) context.lookup(java:comp/env); ds = (DataSource)envCtx.lookup(jdbc/address); if (ds != null) { conn = ds.getConnection(); stmt = conn.createStatement(); result = stmt.executeQuery(SELECT * FROM AddressList); } } catch (SQLException e) { System.out.println(Error occurred + e); } int columns = 0; try { rsmd = result.getMetaData(); // bad line columns = rsmd.getColumnCount(); } catch (SQLException e) { System.out.println(Error occurred + e); } % table width=90% border=1 tr % // write out the header cells containing the column labels try { for (int i = 1; i = columns; i++) { out.write(th + rsmd.getColumnLabel(i) + /th); } % /tr % // now write out one row for each entry in the database table while (result.next()) { out.write(tr); for (int i = 1; i = columns; i++) { out.write(td + result.getString(i) + /td); } out.write(/tr); } // close the connection, resultset, and the statement result.close(); stmt.close(); conn.close(); } // end of the try block catch (SQLException e) { System.out.println(Error + e); } // ensure everything is closed finally { try { if (stmt != null) { stmt.close(); } } catch (SQLException e) {} try { if (conn != null) { conn.close(); } } catch (SQLException e ) {} } % /table /body /html Here are the changes I made to my server.xml file. Of course, I've changed the username/password entries here. Context path=/db-test docBase=db-test debug=0 reloadable=true ResourceParams name=jdbc/address parameter nameusername/name valueusername/value /parameter parameter namepassword/name valuepassword/value /parameter parameter nameurl/name valuejdbc:mysql://localhost:3306/ADDRESS/value /parameter parameter namedriverClassName/name valuecom.mysql.jdbc.Driver/value /parameter /ResourceParams /Context Here is the web.xml file I am using in my WEB-INF directory. ?xml version=1.0 encoding=ISO-8859-1? !DOCTYPE web-app PUBLIC -//Sun Microsystems, Inc.//DTD Web Application 2.3//EN http://java.sun.com/dtd/web-app_2_3.dtd; web-app resource-ref res-ref-namejdbc/address/res-ref-name res-typejavax.sql.DataSource/res-type res-authContainer/res-auth /resource-ref /web-app Rob - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Problem connecting to mysql database with Tomcat and JNDI
Ok, I tried that. Same results. Here is my new Context definition. Context path=/db-test docBase=db-test debug=0 reloadable=true Resource name=jdbc/address auth=Container type=javax.sql.DataSource/ ResourceParams name=jdbc/address parameter nameusername/name valueusername/value /parameter parameter namepassword/name valuepassword/value /parameter parameter nameurl/name valuejdbc:mysql://localhost:3306/ADDRESS/value /parameter parameter namedriverClassName/name valuecom.mysql.jdbc.Driver/value /parameter /ResourceParams /Context Thanks, Rob On Fri, 2003-08-22 at 07:09, Scott Stewart wrote: Well, looking at your Context definition, I'm not seeing the following required element: Resource name=jdbc/address auth=Container type=javax.sql.DataSource / Thanks, Scott Stewart [Manager, Software Development] [EMAIL PROTECTED] ClearSky Mobile Media, Inc. 56 E. Pine Street Suite 200 Orlando, FL 32801 USA -Original Message- From: Robert S. Jones [mailto:[EMAIL PROTECTED] Sent: Thursday, August 21, 2003 5:35 PM To: [EMAIL PROTECTED] Subject: Problem connecting to mysql database with Tomcat and JNDI Folks, I'm having trouble connecting to a mysql database through Tomcat. I'm using Tomcat 5.0.9a with mysql 4.0.14. I have the mysql 3.0.8 JDBC driver in ${TOMCAT_HOME}/common/lib. I'm running RedHat 8.0 with a stock kernel. I've been able to connect to the database without JNDI services. I believe I have the database user set up correctly. I have been all over the web trying to figure out what the problem is. It seems like everyone is having this problem, but no two solutions are the same. FWIW I've tried a lot of this on Tomcat 4 and have had the same results. I've traced the problem to the following code from the JSP file below: conn = ds.getConnection(); Any thoughts/ideas would be greatly appreciated. I'm at the end of my rope on this. Here is the error message I'm getting. java.lang.NullPointerException org.apache.jsp.usingDataSource_jsp._jspService(usingDataSource_jsp.java:74) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:3 20) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) Here is the JSP page I'm using: [EMAIL PROTECTED] import=java.sql.*, javax.sql.*, javax.naming.*% html head titleUsing a DataSource/title /head body h1Using a DataSource/h1 % DataSource ds = null; Connection conn = null; ResultSet result = null; Statement stmt = null; ResultSetMetaData rsmd = null; try { Context context = new InitialContext(); Context envCtx = (Context) context.lookup(java:comp/env); ds = (DataSource)envCtx.lookup(jdbc/address); if (ds != null) { conn = ds.getConnection(); stmt = conn.createStatement(); result = stmt.executeQuery(SELECT * FROM AddressList); } } catch (SQLException e) { System.out.println(Error occurred + e); } int columns = 0; try { rsmd = result.getMetaData(); // bad line columns = rsmd.getColumnCount(); } catch (SQLException e) { System.out.println(Error occurred + e); } % table width=90% border=1 tr % // write out the header cells containing the column labels try { for (int i = 1; i = columns; i++) { out.write(th + rsmd.getColumnLabel(i) + /th); } % /tr % // now write out one row for each entry in the database table while (result.next()) { out.write(tr); for (int i = 1; i = columns; i++) { out.write(td + result.getString(i) + /td); } out.write(/tr); } // close the connection, resultset, and the statement result.close(); stmt.close(); conn.close(); } // end of the try block catch (SQLException e) { System.out.println(Error + e); } // ensure everything is closed finally { try { if (stmt != null) { stmt.close(); } } catch (SQLException e) {} try { if (conn != null) { conn.close(); } } catch (SQLException e ) {} } % /table /body /html Here are the changes I made to my server.xml file. Of course, I've changed the username/password entries here. Context path=/db-test docBase=db-test debug=0 reloadable=true ResourceParams name=jdbc/address parameter nameusername/name valueusername/value /parameter parameter namepassword/name valuepassword/value
RE: Problem connecting to mysql database with Tomcat and JNDI
Well Folks, the law of, the longer a problem takes to resolve, the dumber the mistake has held true once again. It turns out that I had my Context definition in the wrong place in the server.xml file. I'm aggravated, but glad to have the problem solved. Thanks Scott for your suggestions. I should have posted the whole server.xml file. That probably would have made the problem obvious to folks more experienced than me. Rob On Fri, 2003-08-22 at 09:00, Robert S. Jones wrote: Ok, I tried that. Same results. Here is my new Context definition. Context path=/db-test docBase=db-test debug=0 reloadable=true Resource name=jdbc/address auth=Container type=javax.sql.DataSource/ ResourceParams name=jdbc/address parameter nameusername/name valueusername/value /parameter parameter namepassword/name valuepassword/value /parameter parameter nameurl/name valuejdbc:mysql://localhost:3306/ADDRESS/value /parameter parameter namedriverClassName/name valuecom.mysql.jdbc.Driver/value /parameter /ResourceParams /Context Thanks, Rob On Fri, 2003-08-22 at 07:09, Scott Stewart wrote: Well, looking at your Context definition, I'm not seeing the following required element: Resource name=jdbc/address auth=Container type=javax.sql.DataSource / Thanks, Scott Stewart [Manager, Software Development] [EMAIL PROTECTED] ClearSky Mobile Media, Inc. 56 E. Pine Street Suite 200 Orlando, FL 32801 USA -Original Message- From: Robert S. Jones [mailto:[EMAIL PROTECTED] Sent: Thursday, August 21, 2003 5:35 PM To: [EMAIL PROTECTED] Subject: Problem connecting to mysql database with Tomcat and JNDI Folks, I'm having trouble connecting to a mysql database through Tomcat. I'm using Tomcat 5.0.9a with mysql 4.0.14. I have the mysql 3.0.8 JDBC driver in ${TOMCAT_HOME}/common/lib. I'm running RedHat 8.0 with a stock kernel. I've been able to connect to the database without JNDI services. I believe I have the database user set up correctly. I have been all over the web trying to figure out what the problem is. It seems like everyone is having this problem, but no two solutions are the same. FWIW I've tried a lot of this on Tomcat 4 and have had the same results. I've traced the problem to the following code from the JSP file below: conn = ds.getConnection(); Any thoughts/ideas would be greatly appreciated. I'm at the end of my rope on this. Here is the error message I'm getting. java.lang.NullPointerException org.apache.jsp.usingDataSource_jsp._jspService(usingDataSource_jsp.java:74) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:3 20) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) Here is the JSP page I'm using: [EMAIL PROTECTED] import=java.sql.*, javax.sql.*, javax.naming.*% html head titleUsing a DataSource/title /head body h1Using a DataSource/h1 % DataSource ds = null; Connection conn = null; ResultSet result = null; Statement stmt = null; ResultSetMetaData rsmd = null; try { Context context = new InitialContext(); Context envCtx = (Context) context.lookup(java:comp/env); ds = (DataSource)envCtx.lookup(jdbc/address); if (ds != null) { conn = ds.getConnection(); stmt = conn.createStatement(); result = stmt.executeQuery(SELECT * FROM AddressList); } } catch (SQLException e) { System.out.println(Error occurred + e); } int columns = 0; try { rsmd = result.getMetaData(); // bad line columns = rsmd.getColumnCount(); } catch (SQLException e) { System.out.println(Error occurred + e); } % table width=90% border=1 tr % // write out the header cells containing the column labels try { for (int i = 1; i = columns; i++) { out.write(th + rsmd.getColumnLabel(i) + /th); } % /tr % // now write out one row for each entry in the database table while (result.next()) { out.write(tr); for (int i = 1; i = columns; i++) { out.write(td + result.getString(i) + /td); } out.write(/tr); } // close the connection, resultset, and the statement result.close(); stmt.close(); conn.close(); } // end of the try block catch (SQLException e) { System.out.println(Error + e); } // ensure everything is closed finally
Problem connecting to mysql database with Tomcat and JNDI
Folks, I'm having trouble connecting to a mysql database through Tomcat. I'm using Tomcat 5.0.9a with mysql 4.0.14. I have the mysql 3.0.8 JDBC driver in ${TOMCAT_HOME}/common/lib. I'm running RedHat 8.0 with a stock kernel. I've been able to connect to the database without JNDI services. I believe I have the database user set up correctly. I have been all over the web trying to figure out what the problem is. It seems like everyone is having this problem, but no two solutions are the same. FWIW I've tried a lot of this on Tomcat 4 and have had the same results. I've traced the problem to the following code from the JSP file below: conn = ds.getConnection(); Any thoughts/ideas would be greatly appreciated. I'm at the end of my rope on this. Here is the error message I'm getting. java.lang.NullPointerException org.apache.jsp.usingDataSource_jsp._jspService(usingDataSource_jsp.java:74) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:320) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) Here is the JSP page I'm using: [EMAIL PROTECTED] import=java.sql.*, javax.sql.*, javax.naming.*% html head titleUsing a DataSource/title /head body h1Using a DataSource/h1 % DataSource ds = null; Connection conn = null; ResultSet result = null; Statement stmt = null; ResultSetMetaData rsmd = null; try { Context context = new InitialContext(); Context envCtx = (Context) context.lookup(java:comp/env); ds = (DataSource)envCtx.lookup(jdbc/address); if (ds != null) { conn = ds.getConnection(); stmt = conn.createStatement(); result = stmt.executeQuery(SELECT * FROM AddressList); } } catch (SQLException e) { System.out.println(Error occurred + e); } int columns = 0; try { rsmd = result.getMetaData(); // bad line columns = rsmd.getColumnCount(); } catch (SQLException e) { System.out.println(Error occurred + e); } % table width=90% border=1 tr % // write out the header cells containing the column labels try { for (int i = 1; i = columns; i++) { out.write(th + rsmd.getColumnLabel(i) + /th); } % /tr % // now write out one row for each entry in the database table while (result.next()) { out.write(tr); for (int i = 1; i = columns; i++) { out.write(td + result.getString(i) + /td); } out.write(/tr); } // close the connection, resultset, and the statement result.close(); stmt.close(); conn.close(); } // end of the try block catch (SQLException e) { System.out.println(Error + e); } // ensure everything is closed finally { try { if (stmt != null) { stmt.close(); } } catch (SQLException e) {} try { if (conn != null) { conn.close(); } } catch (SQLException e ) {} } % /table /body /html Here are the changes I made to my server.xml file. Of course, I've changed the username/password entries here. Context path=/db-test docBase=db-test debug=0 reloadable=true ResourceParams name=jdbc/address parameter nameusername/name valueusername/value /parameter parameter namepassword/name valuepassword/value /parameter parameter nameurl/name valuejdbc:mysql://localhost:3306/ADDRESS/value /parameter parameter namedriverClassName/name valuecom.mysql.jdbc.Driver/value /parameter /ResourceParams /Context Here is the web.xml file I am using in my WEB-INF directory. ?xml version=1.0 encoding=ISO-8859-1? !DOCTYPE web-app PUBLIC -//Sun Microsystems, Inc.//DTD Web Application 2.3//EN http://java.sun.com/dtd/web-app_2_3.dtd; web-app resource-ref res-ref-namejdbc/address/res-ref-name res-typejavax.sql.DataSource/res-type res-authContainer/res-auth /resource-ref /web-app Rob - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]