- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
当我在 tomcat 上测试我的 Web 服务时,收到“找不到合适的驱动程序”错误。正如各种教程所说,我在 lib 文件夹中有 JDBC .jar。这是我的代码:
public class PostDBConnection {
PreparedStatement st;
ResultSet rs;
Connection con;
DataSource ds;
InitialContext cxt;
String url = "jdbc:postgresql://127.0.0.1:5432/UptonDB";
String user = "*****";
String password = "*******";
String query = "";
StringBuilder response = new StringBuilder();
@SuppressWarnings("unused")
public String getInfo(){
int size = 0;
try {
cxt = new InitialContext();
ds = (DataSource) cxt.lookup("java:comp/env/jdbc/UptonDB");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try{
try {
Class.forName("org.postgres.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
con = DriverManager.getConnection(url, user, password);
st = con.prepareStatement("SELECT VERSION()");
rs = st.executeQuery();
while(rs.next())
{
response.append(rs.getString(1));
}
}
catch(SQLException exc)
{
Logger lgr = Logger.getLogger(PostDBConnection.class.getName());
lgr.log(Level.SEVERE, exc.getMessage(), exc);
}
finally {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(PostDBConnection.class.getName());
lgr.log(Level.WARNING, ex.getMessage(), ex);
}
}
return response.toString();
}
这里还有我按照 Tomcat 网站上的说明创建的 web.xml 和 context.xml 文件:
<resource-ref>
<description>PostgreSQL Data Source </description>
<res-ref-name>jdbc/UptonDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
网络.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/UptonDB" auth="Container" type="javax.sql.DataSource"
removeAbandoned="true" removeAbandonedTimeout="30" maxActive="80"
maxIdle="30" maxWait="10000" username="*****" password="*******"
driverClassName="org.postgresql.Driver"
url = "jdbc:postgresql://127.0.0.1:5432/UptonDB" useUnicode="true"
characterEncoding="utf-8" characterSetResults="utf8"/>
</Context>
感谢任何帮助,谢谢!
最佳答案
正确的驱动程序名称是:org.postgresql.Driver 而不是 org.postgres.Driver
更新:
查看此页面,对其进行一些操作系统研究,你应该没问题:) http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html
不使用 DriverManager,您应该只进行查找(您已经这样做了),而不是从数据源获取连接(您可以从代码中删除 pwd、用户和其他未使用的内容):
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/UptonDB");
Connection conn = ds.getConnection();
关于java - 找不到合适的驱动程序 Postgres JDBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15913253/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!