Re: accessing a database ...
Hi, I have no ideea if this is really possible, but I want to clarify for myself. If tomcat runs as a service, do you think that it might have permissions problem with reading the DSN entry? -- viorel - Original Message - From: Vassilis Atlamazoglou To: Tomcat Users List Sent: Tuesday, August 10, 2004 11:57 Subject: Re: accessing a database ... I run it as standalone ... and the error message was ... java.sql.SQLException: General error at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6987) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115) at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3074) at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323) at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:193) at DisplayServ.doPost(DisplayServ.java:55) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja va:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja va:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180 ) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve. java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163 ) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java :174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne ction(Http11Protocol.java:700) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav a:683) at java.lang.Thread.run(Thread.java:534) BUT when I changed toClass.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connectionc=DriverManager.getConnection("jdbc:odbc:Driver={MicrosoftAccess Driver (*.mdb)};DBQ=C:\\vatlam\\db\\odbc_exmp.mdb");IT WORKED!Is there a similar way to bypass the problem for the case of the MS SQL server ?V - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: accessing a database ...
I run it as standalone ... and the error message was ... java.sql.SQLException: General error at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6987) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115) at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3074) at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323) at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:193) at DisplayServ.doPost(DisplayServ.java:55) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja va:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja va:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180 ) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve. java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163 ) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java :174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne ction(Http11Protocol.java:700) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav a:683) at java.lang.Thread.run(Thread.java:534) BUT when I changed toClass.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connectionc=DriverManager.getConnection("jdbc:odbc:Driver={MicrosoftAccess Driver (*.mdb)};DBQ=C:\\vatlam\\db\\odbc_exmp.mdb");IT WORKED!Is there a similar way to bypass the problem for the case of the MS SQL server ?V - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: accessing a database ...
what is the error message? are you running tomcat as a service? -Original Message- From: Vassilis Atlamazoglou [mailto:[EMAIL PROTECTED] Sent: Tuesday, August 10, 2004 4:45 PM To: Tomcat Users List Subject: Re: accessing a database ... Aris, I deleted user dsn but it didn't change anything!!! Vassilis - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: accessing a database ...
Aris, I deleted user dsn but it didn't change anything!!! Vassilis - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: accessing a database ...
conflict arises when you use tomcat as a service and declared both user and system dsn.. system dsn should prevail. delete user dsn. -Original Message- From: Vassilis Atlamazoglou [mailto:[EMAIL PROTECTED] Sent: Tuesday, August 10, 2004 4:33 PM To: Tomcat Users List Subject: accessing a database ... Hi, I have a database in MS Access which has a system DSN (and a user DSN) in ODBC Data Source Administrator of Windows XP. I can access the data with Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection c = DriverManager.getConnection("jdbc:odbc:odbc_exmp"); with a simple executable java file. But I cannot have access with the a simple servlet via tomcat. BUT when I changed to Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection c=DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\vatlam\\db\\odbc_exmp.mdb"); IT WORKED! What might be the problem? AND ESPECIALLY what I must change in order to access a MS SQL database. Thank you very much in advance for your help! Vassilis - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
accessing a database ...
Hi, I have a database in MS Access which has a system DSN (and a user DSN) in ODBC Data Source Administrator of Windows XP. I can access the data with Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection c = DriverManager.getConnection("jdbc:odbc:odbc_exmp"); with a simple executable java file. But I cannot have access with the a simple servlet via tomcat. BUT when I changed to Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection c=DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\vatlam\\db\\odbc_exmp.mdb"); IT WORKED! What might be the problem? AND ESPECIALLY what I must change in order to access a MS SQL database. Thank you very much in advance for your help! Vassilis
RE: accessing a database via Tomcat
Hi, Add debugging statements to assert that the connection is not null, the statement is created OK, etc, rather than just one exception around everything. Yoav Shapira Millennium Research Informatics >-Original Message- >From: Vassilis Atlamazoglou [mailto:[EMAIL PROTECTED] >Sent: Tuesday, August 03, 2004 6:08 AM >To: Tomcat Users List >Subject: accessing a database via Tomcat > >I have a database in MS Access which has a system DSN (and a user DSN) in >ODBC Data Source Administrator of Windows XP. I can access the data with > > Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); > Connection c = DriverManager.getConnection("jdbc:odbc:odbc_exmp"); > >with a simple executable java file. But I cannot have access with the >following servlet > >import java.sql.*; >import java.io.*; >import javax.servlet.*; >import javax.servlet.http.*; > >public class DisplayServlet extends HttpServlet { > > public void doGet(HttpServletRequest req, HttpServletResponse res) >throws ServletException, IOException { > >res.setContentType("text/html"); >PrintWriter out = res.getWriter(); > >out.print ("Display Records"); >out.print (""); >out.println("Display Records"); > > >res.setContentType("text/html"); > > >// debugging info > >long time1 = System.currentTimeMillis(); > >// connecting to database > >Connection con = null; >Statement stmt = null; >ResultSet rs = null; >String userID = ""; >String passwd = ""; >String dbURL = "jdbc:odbc:odbc_exmp"; >try { > Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); > con = DriverManager.getConnection(dbURL, userID, passwd); > > stmt = con.createStatement(); > rs = stmt.executeQuery("SELECT * FROM Names"); > > // displaying records > > while(rs.next()) { >out.print(rs.getObject(1).toString()); >out.print("\t"); >out.print(rs.getObject(2).toString()); >out.print("\t\t"); >out.print(rs.getObject(3).toString()); >out.print("\n"); > } > > >} catch (SQLException e) { > throw new > ServletException("Servlet Could not display records.", e); >} catch (ClassNotFoundException e) { > throw new > ServletException("JDBC Driver not found.", e); >} finally { > try { >if(rs != null) { > rs.close(); > rs = null; >} >if(stmt != null) { > stmt.close(); > stmt = null; >} >if(con != null) { > con.close(); > con = null; >} > } catch (SQLException e) {} >} > >// debugging info > > out.println (""); > > > } >} > >via Tomcat 4.1 > >with the following error messages: > >type Exception report > >message > >description The server encountered an internal error () that prevented it >from fulfilling this request. > >exception > >javax.servlet.ServletException: Servlet Could not display records. > at DisplayServlet.doGet(DisplayServlet.java:55) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at >org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet .jav >a >:466) > at >org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:1 80) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at >org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic atio >n >FilterChain.java:247) > at >org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil terC >h >ain.java:193) > at >org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVal ve.j >a >va:256) > at >org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext. invo >k >eNext(StandardPipeline.java:643) > at >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: 480) > at >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at >org.apache.catalina.core.StandardContextValve.invoke(StandardContextVal ve.j >a >va:191) > at >org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext. invo >k >eNext(StandardPipeline.java:643) > at >org.apache.cat
accessing a database via Tomcat
I have a database in MS Access which has a system DSN (and a user DSN) in ODBC Data Source Administrator of Windows XP. I can access the data with Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection c = DriverManager.getConnection("jdbc:odbc:odbc_exmp"); with a simple executable java file. But I cannot have access with the following servlet import java.sql.*; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class DisplayServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.print ("Display Records"); out.print (""); out.println("Display Records"); res.setContentType("text/html"); // debugging info long time1 = System.currentTimeMillis(); // connecting to database Connection con = null; Statement stmt = null; ResultSet rs = null; String userID = ""; String passwd = ""; String dbURL = "jdbc:odbc:odbc_exmp"; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection(dbURL, userID, passwd); stmt = con.createStatement(); rs = stmt.executeQuery("SELECT * FROM Names"); // displaying records while(rs.next()) { out.print(rs.getObject(1).toString()); out.print("\t"); out.print(rs.getObject(2).toString()); out.print("\t\t"); out.print(rs.getObject(3).toString()); out.print("\n"); } } catch (SQLException e) { throw new ServletException("Servlet Could not display records.", e); } catch (ClassNotFoundException e) { throw new ServletException("JDBC Driver not found.", e); } finally { try { if(rs != null) { rs.close(); rs = null; } if(stmt != null) { stmt.close(); stmt = null; } if(con != null) { con.close(); con = null; } } catch (SQLException e) {} } // debugging info out.println (""); } } via Tomcat 4.1 with the following error messages: type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: Servlet Could not display records. at DisplayServlet.doGet(DisplayServlet.java:55) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java :466) at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:180) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja va:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja va:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180 ) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve. java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163 ) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java :174) at org.apache.catalina.core.StandardPipeline