You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Ryszard Lach <rl...@id.pl> on 2001/06/18 12:40:55 UTC
Problem with Postgresql JDBC driver
Hi!
I have serious problem with JDBC driver for postgresql. I'm using tomcat 3.2.2
with jdk1.3.1 (I've tried 1.2.2 too). I've tried to put jdbc7.0-1.2.jar into:
$TOMCAT_HOME/lib
$TOMCAT_HOME/webapp/my_app/WEB-INF/lib
and unpacked jdbc7.0-1.2.jar into
$TOMCAT_HOME/classes
$TOMCAT_HOME/webapp/my_app/WEB-INF/classes
and I still receive an error (included at bottom of the message) while calling
Class.forName("postgresql.Driver") in a .jsp file located in .../webapp/my_app
directory.
I'm sure that classpath containing jdbc.*.jar is used by tomcat's startup
script, but it seems I'm missing something...
What could be wrong ? Do I have to configure workers or webapps in any special
way?
Any help would be very appreciated.
This is the error I receive:
Error: 500
Location: /test_pgsql.jsp
Internal Servlet Error:
javax.servlet.ServletException: No suitable driver
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java, Compiled Code)
at _0002ftest_0005fpgsql_0002ejsptest_0005fpgsql_jsp_1._jspService(_0002ftest_0005fpgsql_0002ejsptest_0005fpgsql_jsp_1.java, Compiled Code)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java, Compiled Code) at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled
Code)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java, Compiled Code)
at org.apache.tomcat.core.Handler.service(Handler.java, Compiled Code)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java, Compiled Code)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java, Compiled Code)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java, Compiled Code)
at org.apache.tomcat.service.connector.Ajp12ConnectionHandler.processConnection(Ajp12ConnectionHandler.java, Compiled Code)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java, Compiled Code)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java, Compiled Code)
at java.lang.Thread.run(Thread.java, Compiled Code)
Root cause:
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(DriverManager.java, Compiled Code)
at java.sql.DriverManager.getConnection(DriverManager.java, Compiled Code)
at _0002ftest_0005fpgsql_0002ejsptest_0005fpgsql_jsp_1._jspService(_0002ftest_0005fpgsql_0002ejsptest_0005fpgsql_jsp_1.java, Compiled Code)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java, Compiled Code)
at org.apache.tomcat.core.Handler.service(Handler.java, Compiled Code)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java, Compiled Code)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java, Compiled Code)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java, Compiled Code)
at org.apache.tomcat.service.connector.Ajp12ConnectionHandler.processConnection(Ajp12ConnectionHandler.java, Compiled Code)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java, Compiled Code)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java, Compiled Code)
at java.lang.Thread.run(Thread.java, Compiled Code)
--
** Internet Designers S.A., ul. Przedmiejska 6--10, 54-201 Wrocław **
tel. (071) 35 00 445 w. 25; fax (071) 37 35 946; http://www.id.pl/
Re: Problem with Postgresql JDBC driver
Posted by Luba Powell <lu...@bellatlantic.net>.
Ryszad:
Please let me know if this works for you:
Driver driver =
(Driver) Class.forName("driver URL").newInstance();
This part of statement that you already had in your program:
(Driver) Class.forName("driver URL")
will load .class file into memory.
It is .newInstance() that will actually create and instance of Driver class.
Also make sure your URL is correct.
----- Original Message -----
From: "Luba Powell" <lu...@bellatlantic.net>
To: <to...@jakarta.apache.org>
Sent: Monday, June 18, 2001 10:46 AM
Subject: Re: Problem with Postgresql JDBC driver
> Try this:
>
> Driver driver =
> (Driver) Class.forName("driver URL").newInstance();
> if (driver == null)
> {
> System.out.println("no driver found");
> }
>
>
> ----- Original Message -----
> From: "Ryszard Lach" <rl...@id.pl>
> To: <to...@jakarta.apache.org>
> Sent: Monday, June 18, 2001 6:40 AM
> Subject: Problem with Postgresql JDBC driver
>
>
> > Hi!
> >
> > I have serious problem with JDBC driver for postgresql. I'm using tomcat
> 3.2.2
> > with jdk1.3.1 (I've tried 1.2.2 too). I've tried to put jdbc7.0-1.2.jar
> into:
> >
> > $TOMCAT_HOME/lib
> > $TOMCAT_HOME/webapp/my_app/WEB-INF/lib
> >
> > and unpacked jdbc7.0-1.2.jar into
> >
> > $TOMCAT_HOME/classes
> > $TOMCAT_HOME/webapp/my_app/WEB-INF/classes
> >
> > and I still receive an error (included at bottom of the message) while
> calling
> > Class.forName("postgresql.Driver") in a .jsp file located in
> .../webapp/my_app
> > directory.
> >
> >
> > I'm sure that classpath containing jdbc.*.jar is used by tomcat's
startup
> > script, but it seems I'm missing something...
> >
> > What could be wrong ? Do I have to configure workers or webapps in any
> special
> > way?
> >
> > Any help would be very appreciated.
> >
> > This is the error I receive:
> >
> > Error: 500
> >
> > Location: /test_pgsql.jsp
> >
> > Internal Servlet Error:
> >
> > javax.servlet.ServletException: No suitable driver
> > at
>
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImp
> l.java, Compiled Code)
> > at
>
_0002ftest_0005fpgsql_0002ejsptest_0005fpgsql_jsp_1._jspService(_0002ftest_0
> 005fpgsql_0002ejsptest_0005fpgsql_jsp_1.java, Compiled Code)
> > at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java,
> Compiled Code) at javax.servlet.http.HttpServlet.service(HttpServlet.java,
> Compiled
> > Code)
> > at
>
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja
> va, Compiled Code)
> > at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java,
> Compiled Code)
> > at org.apache.jasper.servlet.JspServlet.service(JspServlet.java,
> Compiled Code)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java,
> Compiled Code)
> > at
> org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java,
> Compiled Code)
> > at org.apache.tomcat.core.Handler.service(Handler.java, Compiled
> Code)
> > at
> org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java,
Compiled
> Code)
> > at
> org.apache.tomcat.core.ContextManager.internalService(ContextManager.java,
> Compiled Code)
> > at
> org.apache.tomcat.core.ContextManager.service(ContextManager.java,
Compiled
> Code)
> > at
>
org.apache.tomcat.service.connector.Ajp12ConnectionHandler.processConnection
> (Ajp12ConnectionHandler.java, Compiled Code)
> > at
> org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java,
> Compiled Code)
> > at
> org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java,
> Compiled Code)
> > at java.lang.Thread.run(Thread.java, Compiled Code)
> >
> > Root cause:
> >
> > java.sql.SQLException: No suitable driver
> > at java.sql.DriverManager.getConnection(DriverManager.java,
> Compiled Code)
> > at java.sql.DriverManager.getConnection(DriverManager.java,
> Compiled Code)
> > at
>
_0002ftest_0005fpgsql_0002ejsptest_0005fpgsql_jsp_1._jspService(_0002ftest_0
> 005fpgsql_0002ejsptest_0005fpgsql_jsp_1.java, Compiled Code)
> > at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java,
> Compiled Code)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java,
> Compiled Code)
> > at
>
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja
> va, Compiled Code)
> > at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java,
> Compiled Code)
> > at org.apache.jasper.servlet.JspServlet.service(JspServlet.java,
> Compiled Code)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java,
> Compiled Code)
> > at
> org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java,
> Compiled Code)
> > at org.apache.tomcat.core.Handler.service(Handler.java, Compiled
> Code)
> > at
> org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java,
Compiled
> Code)
> > at
> org.apache.tomcat.core.ContextManager.internalService(ContextManager.java,
> Compiled Code)
> > at
> org.apache.tomcat.core.ContextManager.service(ContextManager.java,
Compiled
> Code)
> > at
>
org.apache.tomcat.service.connector.Ajp12ConnectionHandler.processConnection
> (Ajp12ConnectionHandler.java, Compiled Code)
> > at
> org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java,
> Compiled Code)
> > at
> org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java,
> Compiled Code)
> > at java.lang.Thread.run(Thread.java, Compiled Code)
> >
> >
> > --
> > ** Internet Designers S.A., ul. Przedmiejska 6--10, 54-201 Wrocław **
> > tel. (071) 35 00 445 w. 25; fax (071) 37 35 946; http://www.id.pl/
>
Re: Problem with Postgresql JDBC driver
Posted by Luba Powell <lu...@bellatlantic.net>.
Try this:
Driver driver =
(Driver) Class.forName("driver URL").newInstance();
if (driver == null)
{
System.out.println("no driver found");
}
----- Original Message -----
From: "Ryszard Lach" <rl...@id.pl>
To: <to...@jakarta.apache.org>
Sent: Monday, June 18, 2001 6:40 AM
Subject: Problem with Postgresql JDBC driver
> Hi!
>
> I have serious problem with JDBC driver for postgresql. I'm using tomcat
3.2.2
> with jdk1.3.1 (I've tried 1.2.2 too). I've tried to put jdbc7.0-1.2.jar
into:
>
> $TOMCAT_HOME/lib
> $TOMCAT_HOME/webapp/my_app/WEB-INF/lib
>
> and unpacked jdbc7.0-1.2.jar into
>
> $TOMCAT_HOME/classes
> $TOMCAT_HOME/webapp/my_app/WEB-INF/classes
>
> and I still receive an error (included at bottom of the message) while
calling
> Class.forName("postgresql.Driver") in a .jsp file located in
.../webapp/my_app
> directory.
>
>
> I'm sure that classpath containing jdbc.*.jar is used by tomcat's startup
> script, but it seems I'm missing something...
>
> What could be wrong ? Do I have to configure workers or webapps in any
special
> way?
>
> Any help would be very appreciated.
>
> This is the error I receive:
>
> Error: 500
>
> Location: /test_pgsql.jsp
>
> Internal Servlet Error:
>
> javax.servlet.ServletException: No suitable driver
> at
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImp
l.java, Compiled Code)
> at
_0002ftest_0005fpgsql_0002ejsptest_0005fpgsql_jsp_1._jspService(_0002ftest_0
005fpgsql_0002ejsptest_0005fpgsql_jsp_1.java, Compiled Code)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java,
Compiled Code) at javax.servlet.http.HttpServlet.service(HttpServlet.java,
Compiled
> Code)
> at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja
va, Compiled Code)
> at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java,
Compiled Code)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java,
Compiled Code)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java,
Compiled Code)
> at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java,
Compiled Code)
> at org.apache.tomcat.core.Handler.service(Handler.java, Compiled
Code)
> at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java, Compiled
Code)
> at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java,
Compiled Code)
> at
org.apache.tomcat.core.ContextManager.service(ContextManager.java, Compiled
Code)
> at
org.apache.tomcat.service.connector.Ajp12ConnectionHandler.processConnection
(Ajp12ConnectionHandler.java, Compiled Code)
> at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java,
Compiled Code)
> at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java,
Compiled Code)
> at java.lang.Thread.run(Thread.java, Compiled Code)
>
> Root cause:
>
> java.sql.SQLException: No suitable driver
> at java.sql.DriverManager.getConnection(DriverManager.java,
Compiled Code)
> at java.sql.DriverManager.getConnection(DriverManager.java,
Compiled Code)
> at
_0002ftest_0005fpgsql_0002ejsptest_0005fpgsql_jsp_1._jspService(_0002ftest_0
005fpgsql_0002ejsptest_0005fpgsql_jsp_1.java, Compiled Code)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java,
Compiled Code)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java,
Compiled Code)
> at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja
va, Compiled Code)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java,
Compiled Code)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java,
Compiled Code)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java,
Compiled Code)
> at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java,
Compiled Code)
> at org.apache.tomcat.core.Handler.service(Handler.java, Compiled
Code)
> at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java, Compiled
Code)
> at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java,
Compiled Code)
> at
org.apache.tomcat.core.ContextManager.service(ContextManager.java, Compiled
Code)
> at
org.apache.tomcat.service.connector.Ajp12ConnectionHandler.processConnection
(Ajp12ConnectionHandler.java, Compiled Code)
> at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java,
Compiled Code)
> at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java,
Compiled Code)
> at java.lang.Thread.run(Thread.java, Compiled Code)
>
>
> --
> ** Internet Designers S.A., ul. Przedmiejska 6--10, 54-201 Wrocław **
> tel. (071) 35 00 445 w. 25; fax (071) 37 35 946; http://www.id.pl/
Re: Problem with Postgresql JDBC driver
Posted by Luba Powell <lu...@bellatlantic.net>.
<< you need to add the shutdown-hooks permission>>
Yes, this too. You can either update policy file directly or via
GUI jdk1.3\bin\policytool
you need to add the
shutdown-hooks permission.
----- Original Message -----
From: "David Wall" <dw...@myEastside.com>
To: <to...@jakarta.apache.org>
Sent: Monday, June 18, 2001 12:08 PM
Subject: Re: Problem with Postgresql JDBC driver
> Rather a postgresq question. I don't know what the error was, but you
want
> to make sure the postgresql.jar file is in your webapp/my_app/WEB-INF/lib
> directory. And if you are using a security manager, you need to add the
> shutdown-hooks permission.
>
> David
>
>
Re: Problem with Postgresql JDBC driver
Posted by David Wall <dw...@myEastside.com>.
Rather a postgresq question. I don't know what the error was, but you want
to make sure the postgresql.jar file is in your webapp/my_app/WEB-INF/lib
directory. And if you are using a security manager, you need to add the
shutdown-hooks permission.
David
Re: Problem with Postgresql JDBC driver
Posted by Ryszard Lach <rl...@id.pl>.
On Mon, Jun 18, 2001 at 12:52:56PM +0200, Tim Stoop wrote:
> Ryszard Lach wrote:
> >
> > and I still receive an error (included at bottom of the message) while calling
> > Class.forName("postgresql.Driver") in a .jsp file located in .../webapp/my_app
> > directory.
>
> Try not using the DriverManager, like so:
>
> Driver drv = org.postgresql.Driver;
> Connection conn = drv.connect("jdbc:postgresql:localhost", "username",
> "password");
>
> Worked for me (although you should look for the exact connect-method,
> I'm not very sure about this one).
>
The effect is the same. I forgott to write, that normal (java) program using
this driver works fine. I've checked also whether java executable
($JAVA_HOME/bin/java) opens apropriate files (using unix strace command) and I
found it doaes.
Do you have any other suggestions ?
R.
--
** Internet Designers S.A., ul. Przedmiejska 6--10, 54-201 Wrocław **
tel. (071) 35 00 445 w. 25; fax (071) 37 35 946; http://www.id.pl/
Re: Problem with Postgresql JDBC driver
Posted by Tim Stoop <t....@ehrmweb.nl>.
Ryszard Lach wrote:
>
> and I still receive an error (included at bottom of the message) while calling
> Class.forName("postgresql.Driver") in a .jsp file located in .../webapp/my_app
> directory.
Try not using the DriverManager, like so:
Driver drv = org.postgresql.Driver;
Connection conn = drv.connect("jdbc:postgresql:localhost", "username",
"password");
Worked for me (although you should look for the exact connect-method,
I'm not very sure about this one).
Kind regards,
Tim Stoop
Re: Problem with Postgresql JDBC driver
Posted by Ryszard Lach <rl...@id.pl>.
On Mon, Jun 18, 2001 at 10:05:16AM -0400, Jeff Waugh wrote:
> Sorry, I hadn't read your error message closely enough.
>
> 'No suitable driver' usually means a problem with the database
> URL to which you are trying to connect.
>
> That should look something like:
>
> db = DriverManager.getConnection("jdbc:postgresql://hostname/dbname",
> "username", "password");
>
> Try playing with that.
Well, now it works. It seems you were right. I can not connect using
DriverManager, but the following code works pretty fine:
Driver drv = new org.postgresql.Driver();
Properties p = new Properties();
p.put("user","my_username");
p.put("password","my_password");
Connection con = drv.connect("jdbc:postgresql://localhost:5432/testowa",p);
Thanks all of you for your help.
Best regards,
R.
--
** Internet Designers S.A., ul. Przedmiejska 6--10, 54-201 Wrocław **
tel. (071) 35 00 445 w. 25; fax (071) 37 35 946; http://www.id.pl/
Re: Problem with Postgresql JDBC driver
Posted by Jeff Waugh <ja...@ic.net>.
Sorry, I hadn't read your error message closely enough.
'No suitable driver' usually means a problem with the database
URL to which you are trying to connect.
That should look something like:
db = DriverManager.getConnection("jdbc:postgresql://hostname/dbname",
"username", "password");
Try playing with that.
-Jeff
----- Original Message -----
From: "Ryszard Lach" <rl...@id.pl>
To: <to...@jakarta.apache.org>
Sent: Monday, June 18, 2001 7:20 AM
Subject: Re: Problem with Postgresql JDBC driver
> On Mon, Jun 18, 2001 at 07:21:21AM -0400, Jeff Waugh wrote:
> > Try Class.forName("org.postgresql.Driver")...
>
> Doesn't work too.
>
> R.
>
> --
> ** Internet Designers S.A., ul. Przedmiejska 6--10, 54-201 Wrocław **
> tel. (071) 35 00 445 w. 25; fax (071) 37 35 946; http://www.id.pl/
>
Re: Problem with Postgresql JDBC driver
Posted by Ryszard Lach <rl...@id.pl>.
On Mon, Jun 18, 2001 at 07:21:21AM -0400, Jeff Waugh wrote:
> Try Class.forName("org.postgresql.Driver")...
Doesn't work too.
R.
--
** Internet Designers S.A., ul. Przedmiejska 6--10, 54-201 Wrocław **
tel. (071) 35 00 445 w. 25; fax (071) 37 35 946; http://www.id.pl/
Re: Problem with Postgresql JDBC driver
Posted by Jeff Waugh <ja...@ic.net>.
Try Class.forName("org.postgresql.Driver")...
----- Original Message -----
From: "Ryszard Lach" <rl...@id.pl>
To: <to...@jakarta.apache.org>
Sent: Monday, June 18, 2001 6:40 AM
Subject: Problem with Postgresql JDBC driver
> Class.forName("postgresql.Driver") in a .jsp file located in
.../webapp/my_app