Thread: Re: Problem with connecting to postgres using JDBC with JSP, but not JDBC with Java

Re: Problem with connecting to postgres using JDBC with JSP, but not JDBC with Java

From
"Mihai Gheorghiu"
Date:
A propos:
Has anyone tried to pipe Velocity into Fop? I need to come up with reports
that can match MS' formatting, and until now this is my best shot.
Any suggestion will be highly appreciated.
Thank you all.

-----Original Message-----
From: Dave Cramer <Dave@micro-automation.net>
To: 'Peter Adamek' <peter.adamek@utoronto.ca>
Cc: pgsql-jdbc@postgresql.org <pgsql-jdbc@postgresql.org>
Date: Thursday, December 27, 2001 8:20 AM
Subject: Re: [JDBC] Problem with connecting to postgres using JDBC with JSP,
but not JDBC with Java


>Peter,
>
>As an aside, if you want to make the complete transition (IMO) have a
>look at velocity (http://jakarta.apache.org/velocity), or
>(www.webmacro.org) webmacro , and get rid of JSP too!
>
>I see you are at U of T, I am in Orangeville!
>
>Cheers,
>
>Dave
>
>-----Original Message-----
>From: pgsql-jdbc-owner@postgresql.org
>[mailto:pgsql-jdbc-owner@postgresql.org] On Behalf Of Peter Adamek
>Sent: Thursday, December 27, 2001 2:16 AM
>To: Jens Carlberg
>Cc: pgsql-jdbc@postgresql.org
>Subject: [JDBC] Problem with connecting to postgres using JDBC with JSP,
>but not JDBC with Java
>
>
>First off, many thanks to Rene Pijlman, Jens Carlberg and K.Ari
>Kruprikov for your previous emails regarding the subcect Problem with
>connecting to postgres using jdbc7.0-1.2.jar.  Your suggestions have
>been very informative.
>
>I must confess, I am somewhat new to JSP and Java as a whole.  My
>background is in ASP development and I am dying to fully convert over.
>I am getting the hang of things pretty well.  I have a full arsenal of
>Oreiley and Wrox books I've gone out to purchase at my disposal on Java
>2, JSP 2nd eddition, Databases with PostgreSQL, etc.  I'm also running
>Red Hat Linux 7.1. Switched over from NT 4.0.  So please bear with me.
>
>I have used your suggestion Rene and tried connecting to my postgresql
>database using the "HelloPostgreSQL.java" pure JAVA (non-JSP) program
>located at http://www.fankhausers.com/postgresql/jdbc/.  Running this
>enabled me to connect to the database, create tables, insert data,
>delete data and drop tables.
>
>Subsequent to this, I tried to modify my JSP code to also connect to the
>database (using the same connection string and all), but I kept on
>getting the following run time error in my browser:
>
>Apache Tomcat/4.0.1 - HTTP Status 500 - Internal Server Error type
>Exception report message Internal Server Error description The server
>encountered an internal error (Internal Server
>Error) that prevented it from fulfilling this request. exception
>java.lang.NullPointerException
>        at TestServlet.service(TestServlet.java:40)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>        at
>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
>tionFilterChain.java:247)
>
>        at
>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
>erChain.java:193)
>
>        at filters.ExampleFilter.doFilter(ExampleFilter.java:149)
>        at
>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
>tionFilterChain.java:213)
>
>        at
>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
>erChain.java:193)
>
>        at
>org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
>e.java:243)
>
>        at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja
>va:566)
>
>        at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
>72)
>        at
>org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>        at
>org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
>e.java:201)
>
>        at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja
>va:566)
>
>        at
>org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
>Base.java:472)
>
>        at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja
>va:564)
>
>        at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
>72)
>        at
>org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>        at
>org.apache.catalina.core.StandardContext.invoke(StandardContext.java:234
>4)
>        at
>org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
>:164)
>
>        at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja
>va:566)
>
>        at
>org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa
>lve.java:170)
>
>        at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja
>va:564)
>
>        at
>org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
>:170)
>
>        at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja
>va:564)
>
>        at
>org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462
>)
>        at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja
>va:564)
>
>        at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
>72)
>        at
>org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>        at
>org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
>java:163)
>
>        at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja
>va:566)
>
>        at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
>72)
>        at
>org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>        at
>org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.j
>ava:1011)
>
>        at
>org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:
>1106)
>
>        at java.lang.Thread.run(Thread.java:484)
>
>At this point, I followed Jens suggestion to modify my code to the
>following.  In the following code, I don't run any SQL statements
>against the database, but after attempting to make the database
>connection, I check to see if it (the connection) is equal to null and
>sure enough it is.  This is what was generating the above error.  So at
>this point, I'm not sure of what to do to.  I think my problem is in the
>way the drivers or classes are being initialized, but I'm not sure.  I
>have folllowed the standard way to connect to the database as has been
>suggested in the books and on numerous sites, but nothing seems to work.
>I know the connection string works fine, becuase the same one works in
>my "HelloPostgreSQL.java" pure JAVA (non-JSP) program.
>
>One thing that I am thinking is that it may be the way I am running
>Tomcat. I have downloaded the binary, untared it as su and when I run
>the startup script, I run it as su (standalone without having it be
>integrated with Apache).  Could this present some problem?  What context
>would you suggest running Tomcat as (there seems to be very limited
>documentation on this)?  If I should run it as another user, I supposes
>I have to change the ownership of all files in the $TOMCAT_HOME tree to
>that user context otherwise I may not get permission to certain files.
>I am also in the middle of trying to integrate my Tomcat with Apache to
>see if maybe that type of setup will do the trick.  Any suggestions once
>again would be greatly appreciated (and don't be afraid to say the
>obvious - it may not be obvious to me).  Many thanks again to Rene, Jens
>and Ari.
>
>import java.io.*;
>import javax.servlet.*;
>import javax.servlet.http.*;
>import java.sql.*;
>
>public class TestServlet extends HttpServlet {
>
>    Connection db;
>    String database = "peter";
>    String username = "myLogin";
>    String password = "myPassword";
>
>    public void init (ServletConfig config) throws ServletException {
>        super.init(config);
>
>        /* Load the driver */
>        try {Class.forName("org.postgresql.Driver");}
>        catch (ClassNotFoundException e) {}
>
>        /* Connect to the database */
>        try {db =
>DriverManager.getConnection("jdbc:postgresql:"+database,username,passwor
>d);}
>
>        catch (SQLException e) {}
>    }
>
>    public void service (HttpServletRequest request,HttpServletResponse
>response) throws ServletException, IOException {
>        // set content type and other response header fields first
>        response.setContentType("text/html");
>
>        // get the communication channel with the requesting client
>        PrintWriter out = response.getWriter();
>
>        /* Standard top bit */
>        out.println("<HTML>\n"
>                    + "<HEAD>\n"
>                    + " <TITLE>Test</TITLE>\n"
>                    + "</HEAD>\n"
>                    + "<BODY BGCOLOR=\"#FFFFFF\">\n");
>
>        if (db == null) {
>           out.println("Database is not being opened.<br>");
>
>        }
>
>        /* Standard bottom bit */
>        out.println("</BODY>\n"
>                    + "</HTML>\n");
>        out.close();
>    }
>
>    public void destroy() {
>        try {db.close();}
>        catch (SQLException e) {}
>    }
>}
>
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 2: you can get off all lists at once with the unregister command
>    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 4: Don't 'kill -9' the postmaster


Velocity has a subproject called dvsl

http://jakarta.apache.org/velocity/dvsl/index.html

Which renders xml using velocity templates. Do you really want fop?

I also have an xml based report generator where you can define adhoc
selects in xml, and generate xml which is then transformed into
whatever(html/text/...) using a named stylesheet. If you are interested
in this I can open source it.

Dave

-----Original Message-----
From: pgsql-jdbc-owner@postgresql.org
[mailto:pgsql-jdbc-owner@postgresql.org] On Behalf Of Mihai Gheorghiu
Sent: Thursday, December 27, 2001 10:17 AM
To: pgsql-jdbc@postgresql.org
Subject: Re: [JDBC] Problem with connecting to postgres using JDBC with
JSP, but not JDBC with Java


A propos:
Has anyone tried to pipe Velocity into Fop? I need to come up with
reports that can match MS' formatting, and until now this is my best
shot. Any suggestion will be highly appreciated. Thank you all.

-----Original Message-----
From: Dave Cramer <Dave@micro-automation.net>
To: 'Peter Adamek' <peter.adamek@utoronto.ca>
Cc: pgsql-jdbc@postgresql.org <pgsql-jdbc@postgresql.org>
Date: Thursday, December 27, 2001 8:20 AM
Subject: Re: [JDBC] Problem with connecting to postgres using JDBC with
JSP, but not JDBC with Java


>Peter,
>
>As an aside, if you want to make the complete transition (IMO) have a
>look at velocity (http://jakarta.apache.org/velocity), or
>(www.webmacro.org) webmacro , and get rid of JSP too!
>
>I see you are at U of T, I am in Orangeville!
>
>Cheers,
>
>Dave
>
>-----Original Message-----
>From: pgsql-jdbc-owner@postgresql.org
>[mailto:pgsql-jdbc-owner@postgresql.org] On Behalf Of Peter Adamek
>Sent: Thursday, December 27, 2001 2:16 AM
>To: Jens Carlberg
>Cc: pgsql-jdbc@postgresql.org
>Subject: [JDBC] Problem with connecting to postgres using JDBC with
>JSP, but not JDBC with Java
>
>
>First off, many thanks to Rene Pijlman, Jens Carlberg and K.Ari
>Kruprikov for your previous emails regarding the subcect Problem with
>connecting to postgres using jdbc7.0-1.2.jar.  Your suggestions have
>been very informative.
>
>I must confess, I am somewhat new to JSP and Java as a whole.  My
>background is in ASP development and I am dying to fully convert over.
>I am getting the hang of things pretty well.  I have a full arsenal of
>Oreiley and Wrox books I've gone out to purchase at my disposal on Java

>2, JSP 2nd eddition, Databases with PostgreSQL, etc.  I'm also running
>Red Hat Linux 7.1. Switched over from NT 4.0.  So please bear with me.
>
>I have used your suggestion Rene and tried connecting to my postgresql
>database using the "HelloPostgreSQL.java" pure JAVA (non-JSP) program
>located at http://www.fankhausers.com/postgresql/jdbc/.  Running this
>enabled me to connect to the database, create tables, insert data,
>delete data and drop tables.
>
>Subsequent to this, I tried to modify my JSP code to also connect to
>the database (using the same connection string and all), but I kept on
>getting the following run time error in my browser:
>
>Apache Tomcat/4.0.1 - HTTP Status 500 - Internal Server Error type
>Exception report message Internal Server Error description The server
>encountered an internal error (Internal Server
>Error) that prevented it from fulfilling this request. exception
>java.lang.NullPointerException
>        at TestServlet.service(TestServlet.java:40)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>        at
>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic
>a
>tionFilterChain.java:247)
>
>        at
>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil
>t
>erChain.java:193)
>
>        at filters.ExampleFilter.doFilter(ExampleFilter.java:149)
>        at
>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic
>a
>tionFilterChain.java:213)
>
>        at
>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil
>t
>erChain.java:193)
>
>        at
>org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVal
>v
>e.java:243)
>
>        at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
>a
>va:566)
>
>        at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
>4
>72)
>        at
>org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>        at
>org.apache.catalina.core.StandardContextValve.invoke(StandardContextVal
v
>e.java:201)
>
>        at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
>a
>va:566)
>
>        at
>org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticato
>r
>Base.java:472)
>
>        at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
>a
>va:564)
>
>        at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
>4
>72)
>        at
>org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>        at
>org.apache.catalina.core.StandardContext.invoke(StandardContext.java:23
4
>4)
>        at
>org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.jav
a
>:164)
>
>        at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
>a
>va:566)
>
>        at
>org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherV
>a
>lve.java:170)
>
>        at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
>a
>va:564)
>
>        at
>org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.jav
>a
>:170)
>
>        at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
>a
>va:564)
>
>        at
>org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:46
>2
>)
>        at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
a
>va:564)
>
>        at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
>4
>72)
>        at
>org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>        at
>org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve
.
>java:163)
>
>        at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
>a
>va:566)
>
>        at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
>4
>72)
>        at
>org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>        at
>org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.
j
>ava:1011)
>
>        at
>org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java
>:
>1106)
>
>        at java.lang.Thread.run(Thread.java:484)
>
>At this point, I followed Jens suggestion to modify my code to the
>following.  In the following code, I don't run any SQL statements
>against the database, but after attempting to make the database
>connection, I check to see if it (the connection) is equal to null and
>sure enough it is.  This is what was generating the above error.  So at

>this point, I'm not sure of what to do to.  I think my problem is in
>the way the drivers or classes are being initialized, but I'm not sure.

>I have folllowed the standard way to connect to the database as has
>been suggested in the books and on numerous sites, but nothing seems to

>work. I know the connection string works fine, becuase the same one
>works in my "HelloPostgreSQL.java" pure JAVA (non-JSP) program.
>
>One thing that I am thinking is that it may be the way I am running
>Tomcat. I have downloaded the binary, untared it as su and when I run
>the startup script, I run it as su (standalone without having it be
>integrated with Apache).  Could this present some problem?  What
>context would you suggest running Tomcat as (there seems to be very
>limited documentation on this)?  If I should run it as another user, I
>supposes I have to change the ownership of all files in the
>$TOMCAT_HOME tree to that user context otherwise I may not get
>permission to certain files. I am also in the middle of trying to
>integrate my Tomcat with Apache to see if maybe that type of setup will

>do the trick.  Any suggestions once again would be greatly appreciated
>(and don't be afraid to say the obvious - it may not be obvious to me).

>Many thanks again to Rene, Jens and Ari.
>
>import java.io.*;
>import javax.servlet.*;
>import javax.servlet.http.*;
>import java.sql.*;
>
>public class TestServlet extends HttpServlet {
>
>    Connection db;
>    String database = "peter";
>    String username = "myLogin";
>    String password = "myPassword";
>
>    public void init (ServletConfig config) throws ServletException {
>        super.init(config);
>
>        /* Load the driver */
>        try {Class.forName("org.postgresql.Driver");}
>        catch (ClassNotFoundException e) {}
>
>        /* Connect to the database */
>        try {db =
>DriverManager.getConnection("jdbc:postgresql:"+database,username,passwo
>r
>d);}
>
>        catch (SQLException e) {}
>    }
>
>    public void service (HttpServletRequest request,HttpServletResponse
>response) throws ServletException, IOException {
>        // set content type and other response header fields first
>        response.setContentType("text/html");
>
>        // get the communication channel with the requesting client
>        PrintWriter out = response.getWriter();
>
>        /* Standard top bit */
>        out.println("<HTML>\n"
>                    + "<HEAD>\n"
>                    + " <TITLE>Test</TITLE>\n"
>                    + "</HEAD>\n"
>                    + "<BODY BGCOLOR=\"#FFFFFF\">\n");
>
>        if (db == null) {
>           out.println("Database is not being opened.<br>");
>
>        }
>
>        /* Standard bottom bit */
>        out.println("</BODY>\n"
>                    + "</HTML>\n");
>        out.close();
>    }
>
>    public void destroy() {
>        try {db.close();}
>        catch (SQLException e) {}
>    }
>}
>
>
>
>---------------------------(end of
>broadcast)---------------------------
>TIP 2: you can get off all lists at once with the unregister command
>    (send "unregister YourEmailAddressHere" to
majordomo@postgresql.org)
>
>
>
>---------------------------(end of
>broadcast)---------------------------
>TIP 4: Don't 'kill -9' the postmaster


---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly