在Java应用引擎中连接到PostgreSQL

编程入门 行业动态 更新时间:2024-10-25 19:29:36
本文介绍了在Java应用引擎中连接到PostgreSQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我试图从Java应用引擎连接到PostgreSQL服务器。 在我的本地机器上代码完美工作,但是当我将代码部署到appengine时,出现以下异常:

I'm trying to connect to PostgreSQL server from java app engine. On my local machine code works perfectly, but when I deploy code to appengine, I get this exception:

Uncaught exception from servlet java.lang.NullPointerException at com.google.appengine.runtime.Request.process-3a02a4d7b73299fa(Request.java) at java.util.Hashtable.put(Hashtable.java:432) at java.util.Properties.setProperty(Properties.java:161) at org.postgresql.Driver.loadDefaultProperties(Driver.java:121) at org.postgresql.Driver.access$000(Driver.java:46) at org.postgresql.Driver$1.run(Driver.java:88) at java.security.AccessController.doPrivileged(AccessController.java:63) at org.postgresql.Driver.getDefaultProperties(Driver.java:85) at org.postgresql.Driver.connect(Driver.java:231) at java.sql.DriverManager.getConnection(DriverManager.java:579) at java.sql.DriverManager.getConnection(DriverManager.java:221) at guestbook.PostgreServlet.doGet(PostgreServlet.java:49) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.google.appengine.tools.appstats.AppstatsFilter.doFilter(AppstatsFilter.java:141) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:435) at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:442) at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:186) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:306) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:298) at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:439) at java.lang.Thread.run(Thread.java:722)

我使用postgresql-9.2-1003.jdbc4.jar,并将此jdbc作为库也在我的war / WEB-INF / lib文件夹中。 我的java代码在这里:

I am using postgresql-9.2-1003.jdbc4.jar and I have this jdbc as library and also inside my "war/WEB-INF/lib" folder. My java code is here:

import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class PostgreServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); PrintWriter pw = resp.getWriter(); Connection conn = null; String result = ""; try { conn = DriverManager.getConnection("jdbc:postgresql://xx.xxx.xxx.xxx:xxxx/xxxxx", "xxx", "xxxx"); if(conn == null){ pw.println("Connection null"); return; } ResultSet rs = conn.createStatement().executeQuery( "SELECT * FROM pg_catalog.pg_tables"); while (rs.next()) { result += rs.getString("tablename") + "<br>"; } pw.println(result); } catch (SQLException e) { e.printStackTrace(); } finally { if(conn != null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }

推荐答案

通过GAE连接到PostgreSQL 可以完成!

Connecting to PostgreSQL from GAE Can be done!

jdbc -

postgresql-8.3-607.jdbc2ee.jar

并且您必须启用套接字

但是,仍然要感谢大家的建议和答案

But still, thank you all for your suggestions and answers

更多推荐

在Java应用引擎中连接到PostgreSQL

本文发布于:2023-10-23 13:41:45,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:连接到   引擎   Java   PostgreSQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!