Two things,

In your server.xml
user I think should be username
and
driverName has been deprecated in favour of url which needs the servername
and DB name as well
(as in something like jdbc:postgresql://full.server.name/mybookdb <- or
whatever the DB is called)

Are you *sure* you're using the right install of TC and that the server.xml
has no reference to the hsql driver?

BTW - only got this working with Oracle and mySQL so most of this is
guesswork based on those two exercises. 

Bye,

Les
P.S. You shouldn't open the connection in init() nor cache the connection
BTW - use a pool instead :)

> -----Original Message-----
> From: Przemyslaw Kowalczyk [mailto:[EMAIL PROTECTED]]
> Sent: 02 July 2002 11:09
> To: 'Tomcat Users List'
> Subject: Tomcat 4.0.4, jndi, jdbc and postgresql [long]
> 
> 
> Hi
> 
> I've just started to write servlets. Servlets that only do 
> processing, without 
> connecting to database work fine, but I have some problems to get the 
> connection with postgresql via jdbc work.
> 
> Tomcat: 4.0.4 (on linux)
> Postgresql: 7.2.1 (on linux)
> Jdbc: pgjdbc2.jar (from jdbc.postgresql.org)
> 
> The servlet is quite simple:
> 
> import java.io.*;
> import java.util.*;
> import java.sql.*;
> import javax.sql.*;
> import javax.naming.*;
> import javax.servlet.*;
> import javax.servlet.http.*;
> 
> public class InfoServlet extends HttpServlet {
> 
>         Connection con;
>         private boolean conFree = true;
> 
>         public void init() throws ServletException {
>                 try  {
>                         Context initCtx = new InitialContext();
>                         Context envCtx = 
> (Context)initCtx.lookup("java:comp/env");
>                         DataSource ds = (DataSource)
>                         envCtx.lookup("jdbc/BookDB");
>                         Connection con = ds.getConnection();
>                 } catch (Exception ex) {
>                         throw new ServletException("Couldn't 
> open connection 
> to database: " + ex.getMessage());
>                 }
>         }
> 
>         public void destroy() {
>                 try {
>                         con.close();
>                 } catch (SQLException ex) {
>                         System.out.println(ex.getMessage());
>                 }
>         }
> 
>         public void doGet (HttpServletRequest request, 
> HttpServletResponse 
> response) throws ServletException, IOException {
> 
>                 HttpSession session = request.getSession();
> 
>                 // set content-type header before accessing the Writer
>                 response.setContentType("text/html");
>                 response.setBufferSize(8192);
>                 PrintWriter out = response.getWriter();
> 
>                 // then write the data of the response
>                 out.println("<html>" +
>                 "<head><title>Duke's Bookstore</title></head>");
>         }
> }
> 
> in web/WEB-INF/web.xml I defined:
> 
> 
> <!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>
>         <display-name>Currency Converter Application</display-name>
>         <description>
>                 Test servlet
>         </description>
>         <servlet>
>                 <servlet-name>info</servlet-name>
>                 <display-name>info</display-name>
>                 <description>no description</description>
>                 <servlet-class>InfoServlet</servlet-class>
>         </servlet>
>         <servlet-mapping>
>                 <servlet-name>info</servlet-name>
>                 <url-pattern>/info</url-pattern>
>         </servlet-mapping>
>         <session-config>
>                 <session-timeout>30</session-timeout>
>         </session-config>
>         <resource-ref>
>                 <res-ref-name>jdbc/BookDB</res-ref-name>
>                 <res-type>javax.sql.DataSource</res-type>
>                 <res-auth>Containter</res-auth>
>         </resource-ref>
> </web-app>
> 
> And in server.xml in the contex of the application:
> 
>        <Context path="/bookstore" docBase="bookstore" debug="0"
>                  reloadable="true" crossContext="true">
>           <Logger className="org.apache.catalina.logger.FileLogger"
>                      prefix="localhost_bookstore_log." suffix=".txt"
>                   timestamp="true"/>
>           <Resource name="jdbc/BookDB" auth="Container"
>             type="javax.sql.DataSource"/>
>           <ResourceParams name="jdbc/BookDB">
>             <parameter>
>               <name>user</name>
>               <value>java</value>
>             </parameter>
>             <parameter>
>               <name>password</name>
>               <value>java</value>
>             </parameter>
>             <parameter>
>               <name>driverClassName</name>
>               <value>org.postgresql.Driver</value>
>             </parameter>
>             <parameter>
>               <name>driverName</name>
>               <value>jdbc:postgresql:public</value>
>             </parameter>
>           </ResourceParams>
>         </Context>
> 
> I've tried a few different driverName parameters: (restarting 
> Tomcat after 
> each change)
> jdbc:postgresql://localhost/public
> jdbc:postgresql://full.server.name/public
> jdbc:postgresql:public
> jdbc:postgresql://localhost/
> 
> But, despite the parameters, I always get the following error:
> 
> exception 
> javax.servlet.ServletException: Couldn't open connection to database: 
> Exception creating DataSource: org.hsql.jdbcDriver
>         at InfoServlet.init(Unknown Source)
>         at javax.servlet.GenericServlet.init(GenericServlet.java:258)
>         at 
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardW
> rapper.java:918)
> ....
> 
> {cut}
> 
> I have no idea why Tomcat wants to connect using hsql driver. 
> I grepped 
> through tomcat directory and found only one reference to this 
> driver (in 
> examples section). I removed event the sample section, 
> restarted Tomcat but 
> it didn't help. 
> 
> Does anyone know what is wrong? 
> 
> regards
> Przem
> 
> 
> --
> To unsubscribe, e-mail:   
> <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: 
> <mailto:[EMAIL PROTECTED]>
> 

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to