因为不想去公司加班,所以就把要做的demo项目拿回家里做了,装好SQLSERVER2005,导入工程,用公司已有的连接池配置xml文件改改准备开工,没想到Tomcat启动的时候居然报错:
Cannot create JDBC driver of class '' for connect URL 'null'
xml配置文件在公司用的好好的啊,在网上找解决办法,有说要改server.xml的,有说要改在web.xml里面加引用的,还有说要在 META-INF 文件夹下建 context.xml 的,都试了一遍,还是报同样的错误。后来按一篇文章说的,在Tomcat的Admin页面里配了数据源,然后修改server.xml,在localhost文件夹下按文章给的范例加工程的xml文件,还在web.xml里加引用,启动Tomcat,居然成了。仔细核对,发现范例的localhost文件夹下的xml和公司用的xml不一样:
公司的:
<Context docBase="Y:\MyEclipse 6.6\workspace\aaaaaaa\docroot" path="/aaaaaaa" reloadable="false">
<Resource name="com.xxxxxx" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="com.xxxxxx">
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>aaaa</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bbbbb;SelectMethod=cursor</value>
</parameter>
</ResourceParams>
</Context>
范例的:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="Y:\MyEclipse 6.6\workspace\aaaaaaa\docroot" path="/aaaaaaa" reloadable="false">
<Resource
name="com.xxxxxx"
type="javax.sql.DataSource"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bbbbb;SelectMethod=cursor"
password="aaaa"
username="sa"/>
</Context>
不同之处在于公司的数据源的配置属性写在<ResourceParams>里,范例是直接作为 <Resource>的属性。
然后又试着把server.xml文件中<GlobalNamingResources>里的数据源配置删掉,web.xml中的数据源引用删掉,META-INF里的context.xml也删掉,因为公司的环境里就没这些东西,重启Tomcat,居然也能正常使用。看来数据源只需要在localhost下建立工程对应的xml文件就行了,但得注意要把数据源属性写在Resource元素里。
不知道为啥公司的xml文件在家又用不了,有可能是那个地方没配置对吧,而且现在的方法可能也不规范,先不管了,能在家里跑起来就行:)
分享到:
相关推荐
3. **Apache Commons Pool2 + Tomcat JDBC连接池配置** 自Hibernate 4.x版本开始,推荐使用Tomcat JDBC连接池,它是基于Apache Commons Pool2的实现。配置如下: ```xml ...
1. **C3P0连接池配置** C3P0是开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Hibernate中配置C3P0连接池,需要在`hibernate.cfg.xml`配置文件中添加以下属性: ```xml ...
例如,Tomcat、JBoss等应用服务器都支持JNDI配置C3P0、DBCP等连接池。 4. DBCP(Database Connection Pool): DBCP是Apache Commons的一个项目,基于Jakarta-pool实现的数据库连接池。它简单易用,但相比于C3P0和...
本文将详细阐述如何在Hibernate 3.2中配置和使用连接池,包括C3P0、DBCP和通过JNDI从容器获取连接池。 1. **使用Hibernate自带的连接池** Hibernate 3.2虽然自带了一个连接池,但由于性能和稳定性问题,官方并不...
标题中的“Tomcat配置虚拟目录数据源”是指在Apache Tomcat服务器中设置多个虚拟目录以及配置这些目录对应的数据源。这通常涉及到Web应用的部署、URL映射以及数据库连接池的管理。在企业级开发中,这样的配置可以...
10. **性能优化**:通过调整配置参数,如增大最大线程数、启用连接池等,可以提升Tomcat的性能。 11. **社区支持**:作为开源项目,Jakarta Tomcat 4.1.31拥有庞大的开发者社区,提供了丰富的文档、示例和问题解决...
尽管如此,Tomcat通过一系列扩展功能(例如JNDI、数据库连接池、事务处理等)逐步接近了应用服务器的特性。 #### Servlet容器与Tomcat的工作模式 - **Servlet容器的作用** Servlet容器的主要职责是处理客户端...
尽管如此,Tomcat在长期发展中已经添加了诸如JNDI(Java Naming and Directory Interface)、数据库连接池和事务处理等功能,使得其在商业应用中也能胜任。 2. **Servlet容器** Servlet容器是Tomcat的核心组件,它...
在配置Tomcat时,开发者可能需要修改`conf/server.xml`文件,以调整端口号、设置连接池、添加或删除监听器、修改默认的Web应用路径等。此外,可以创建自定义的`context.xml`文件来控制特定Web应用的配置。 安全方面...
默认的 Hibernate 连接池功能有限,推荐使用成熟的连接池实现,如 C3P0、Druid 或者应用服务器自身的连接池(如 Tomcat 的 DBCP、WebLogic)。配置时,需要取消 Hibernate 内置连接池的相关设置,并根据所选连接池的...
然而,随着Java社区的发展,一些现代的连接池如HikariCP和Tomcat JDBC Pool等已经取代了DBCP,因为它们在性能和稳定性上更胜一筹。尽管如此,理解DBCP的工作原理和使用方式仍然是Java开发者的重要技能之一。
不过,随着技术的发展,现在更多开发者可能会选择HikariCP、DBCP2或Apache Tomcat内置的连接池等更现代的解决方案,这些库提供了更好的性能和更完善的特性集。然而,理解c3p0的工作原理和配置方法,对于理解数据库...
`springboot_Druid配置文件.txt`可能包含Spring Boot应用中Druid连接池的配置,比如最大连接数、最小连接数、超时时间等,这些配置直接影响到应用对数据库资源的管理。 `汉语转码问题.txt`可能涉及字符编码的处理,...
常见的数据库连接池有DBCP、C3P0和Druid等,它们各自有不同的配置参数和特性,工程师可以根据实际需要进行选择和优化。 以上是标题和描述中所提及的知识点,它们是数据库交互的基础,是Java工程师在日常开发中需要...
6. 数据库连接:配置数据库连接池,如Druid或C3P0,编写ssh.sql文件进行数据库初始化。 7. 编写业务逻辑:实现Action、Service和DAO层的业务逻辑。 8. 视图层开发:使用JSP或FreeMarker等模板技术,根据Struts2的...
尽管严格意义上Tomcat并非真正的App Server,但它是一个支持Servlet/JSP的Web容器,并具备一定的App Server功能(如JNDI、数据库连接池、用户事务处理等)。Tomcat被广泛应用在中小型Java Web应用中。 - **下载**:...
5. **数据库连接池**:Resin提供了数据库连接池管理,能有效地管理和复用数据库连接,提高数据库操作的效率。 6. **Quercus PHP支持**:Resin 2.1.16版本还支持Quercus,这是一个纯Java实现的PHP运行环境,允许在...