最近在IDEA中用JDBC连接PostgreSQL数据库时遇到了这样一个奇怪的事情:

PostgreSQL JDBC Driver官网下载好JDBC驱动之后,在IDEA的Project Structure的Modules中已经添加好jar包的依赖,并且在普通的Java类(自己封装的数据库工具类)中能够成功的连接上数据库,也能从里面读取数据。

但是,正当咱连接上数据库而高兴的时候,悲剧悄然来临。如果在servlet中调用自己编写数据库工具类进行数据库连接,就会出现如下图所示的错误,然后自动断开与tomcat服务器的连接。



这是什么原因呢,调试之后,咱发现就是在跳转到数据库工具类中进行postgis数据库连接时出错,而出错时会提示java.lang.ClassNotFoundException: org.postgresql.Driver

这就相当明显了,就是web应用没有找到我们的JDBC Driver。我们的servlet只会加载到web项目的目录(webapp或WebRoot目录)里面的jar包。这比较让人疑惑,但事实就是这样,我们添加的jar包没有被web应用加载到。

那如何解决呢?只需要在自己web项目根目录(webapp或者WebRoot等)下的WEB-INF目录中添加lib文件夹,将其添加到依赖。然后吧需要的数据库驱动jar包放到该目录下即可。

我在的另一篇博客中也提到过,/WEB-INF/lib/ 这个目录一般放置仅在这个web应用中用到的jar文件,例如数据库驱动jar文件(我们链接postgis数据库时就用到)。

这样,我们在servlet中就能够连接数据库,愉快地读取数据了。

在IDEA中已经配置postgis数据库驱动并且能在Java类中连接数据库,但在servlet中无法连接数据库且导致Tomcat自动断开连接的解决方案的更多相关文章

  1. MySQL5.6数据库8小时内无请求自动断开连接

    问题: 最近的项目中,发现Mysql数据库在8个小时内,没有请求时,会自动断开连接,这是MySQL服务器的问题.The last packet successfully received from t ...

  2. CentOS 6.5系统中安装配置MySQL数据库

    就像Windows server 2003,2008中一般安装的是Sql Server 数据库,在linux系统中一般安装的是mysql数据库,而且Mysql数据库的第一个版本就是发行在Linux系统 ...

  3. dbcp基本配置和重连配置 -- mysql 8小时自动断开连接的问题

    1. 引入dbcp (选择1.4) Java代码   com.alibaba.external jakarta.commons.dbcp 1.4 2. dbcp的基本配置 相关配置说明: initia ...

  4. SSH自动断开连接的原因、配置(转)

    方法一: 用putty/SecureCRT连续3分钟左右没有输入, 就自动断开, 然后必须重新登陆, 很麻烦. 在网上查了很多资料, 发现原因有多种, 环境变量TMOUT引起,ClientAliveC ...

  5. Java之通过反射机制选择servlet中的对应的方法

    此方法用于在对Javaee开发中的通过对应的名称而选择servlet中的对应的方法 注:主要代码如下 protected void doGet(HttpServletRequest req, Http ...

  6. python---django中models配置修改数据库引擎

    Django支持多种数据库,sqlite,mysql,oracle等,其默认数据库是sqlite 在settings文件中可以发现: DATABASES = { 'default': { 'ENGIN ...

  7. Docker中安装配置Oracle数据库

    本文使用的OS是Ubuntu([16.04.1_server][1])[注:Ubuntu是安装在vmware虚拟机上的]. 其他的Oracle连接工具:[sqldeveloper-4.1.5.21.7 ...

  8. [原创]java WEB学习笔记05:Servlet中的ServletConfig对象

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. java基础77 Http协议及Servlet中的GET、POST提交方式

    本文知识点(目录): 1.什么是http协议    2.查看http协议的工具    3.http协议的内容    4.请求方式    5.请求头和响应头(以及获取请求头信息的方法)    6.实体内 ...

随机推荐

  1. SIMOTION D435-2 PN报错1915,无法进入RUN状态 解决方法

    1.现象 2.解决方法 以下几种情况会导致SIMOTION D CPU无法RUN状态: 1.SIMOTION D设置CPU上电后自动进入RUN状态,上电后D4x5 CPU准备就绪,开始执行系统任务区的 ...

  2. 学习廖雪峰的Git教程2--远程仓库

    今天跳过之前版本管理,先来学习远程仓库内容: 1.创建ssh(这是为没有ssh key准备的,如果有就可以进行下一步: 敲入 $ ssh-keygen -t rsa -C "youremai ...

  3. elasticsearch 索引数据多了怎么办,如何调优,部署 ?

    面试官:想了解大数据量的运维能力. 解答:索引数据的规划,应在前期做好规划,正所谓"设计先行,编码在后", 这样才能有效的避免突如其来的数据激增导致集群处理能力不足引发的线上客户 ...

  4. memcached 和服务器的 local cache(比如 PHP 的 APC、 mmap 文件等)相比,有什么优缺点?

    首先,local cache 有许多与上面(query cache)相同的问题.local cache 能够利 用的内存容量受到(单台)服务器空闲内存空间的限制.不过,local第 109 页 共 4 ...

  5. 什么是 spring?

    Spring 是个 java 企业级应用的开源开发框架.Spring 主要用来开发 Java 应用, 但是有些扩展是针对构建 J2EE 平台的 web 应用.Spring 框架目标是简化 Java 企 ...

  6. ES6技术之“判空方案”

    一.常用方案 直接判断 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  7. 汽车中的低速can和高速can的区别

    转自:https://zhuanlan.zhihu.com/p/33212308

  8. Flex 布局新旧混合写法详解(兼容微信)

    flex 是个非常好用的属性,如果说有什么可以完全代替 float 和 position ,那么肯定是非它莫属了(虽然现在还有很多不支持 flex 的浏览器).然而国内很多浏览器对 flex 的支持都 ...

  9. 记一次用mpvue框架搭建的小程序

    介绍 mpvue (github 地址请参见)是一个使用 Vue.js 开发小程序的前端框架.框架基于 Vue.js 核心,mpvue 修改了Vue.js 的 runtime 和 compiler 实 ...

  10. 小程序web-view加载H5信息不全

    满足小程序的web-view标签跳转网页形式 配置小程序后台的web-view(业务域名) 可打开关联的公众号的文章 通常实现逻辑 页面加载的时候赋值于一个data对象的值,然后赋值到web-view ...