【发布时间】:2011-12-14 17:02:41
【问题描述】:
我会尽我所能制定。
首先,Web 应用程序(带有 Spring Jdbc 的 Spring MVC)运行良好,直到我开始使用 STS(基于 Eclipse 的 Spring Tool Suite)和 JDK+JRE7 的版本来获取 Java 7 的功能。
其次,当前的问题是 Apache Tomcat 6 或 7(我有两个,但由于我不记得的原因重新安装了)似乎正在影响与数据库的连接。直接说:获取jdbc连接失败
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: No suitable driver found for jdbc:postgresql:postgres
每当我尝试从我的网络应用程序对数据库执行任何操作时都会发生这种情况。
jdbc:postgresql:postgres 行是可以的,以防万一,因为它以前工作过,它有效地表示要连接到名为 postgres 的本地数据库(也因为以下几点)。
另一个重要的一点是,在 vFabric tc Server 下,一切都可以完美运行,没有任何问题。
第三,数据库是 PostgreSql 加上 Apache DBCP 池化。
第四,maven jdbc 驱动程序依赖项似乎运行良好,同样如果它们没有 vFabric tc Server 也会像 Apache Tomcat 一样失败,这让我想到 Apache Tomcat 本身就是罪魁祸首。
服务器启动过程中产生的一些信息:
Dec 14, 2011 4:54:32 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\ProgramFiles\Java\jdk1.7.0_02\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\MiKTeX 2.9\miktex\bin;C:\Program Files\Apache Software Foundation\apache-maven-3.0.3\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\QuickTime\QTSystem\;.
Dec 14, 2011 4:54:32 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Dec 14, 2011 4:54:32 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Dec 14, 2011 4:54:32 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 849 ms
Dec 14, 2011 4:54:32 PM org.apache.catalina.core.StandardServicestartInternal
INFO: Starting service Catalina
Dec 14, 2011 4:54:32 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.23
Dec 14, 2011 4:54:33 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor C:\Users\User\Documents\workspace-sts\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf\Catalina\localhost\project.xml
Dec 14, 2011 4:54:33 PM org.apache.catalina.startup.SetContextPropertiesRule begin
WARNING: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:project' did not find a matching property.
Dec 14, 2011 4:54:34 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
Dec 14, 2011 4:54:37 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Dec 14, 2011 4:54:37 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Dec 14, 2011 4:54:37 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 4664 ms
我真的很绝望,请帮忙。
更新:
仍然坐在前面看着悲伤的屏幕,所以我决定包含所有 .xml 配置。
<bean id="dataSource" class="org.apache.commons.dbcp.PoolingDataSource">
<constructor-arg ref="connectionPool"/>
</bean>
<bean id ="connectionPool" class="org.apache.commons.pool.impl.GenericObjectPool">
<constructor-arg><null/></constructor-arg>
</bean>
<bean id="poolableConnectionFactory" class="org.apache.commons.dbcp.PoolableConnectionFactory" >
<constructor-arg ref="connectionFactory"/>
<constructor-arg ref="connectionPool"/>
<constructor-arg><null/></constructor-arg>
<constructor-arg><null/></constructor-arg>
<constructor-arg value="false"/>
<constructor-arg value="true"/>
</bean>
<bean id="connectionFactory" class="org.apache.commons.dbcp.DriverManagerConnectionFactory">
<constructor-arg value="jdbc:postgresql:postgres"/>
<constructor-arg value="postgres"/>
<constructor-arg value="myCorrectPassword"/>
</bean>
【问题讨论】:
-
如何加载驱动程序?
-
spring配置文件中的接线,要我贴出来吗?
-
检查 Eclipse 是否正在将 jar 复制到工作文件夹(在 .settings 文件夹下的某个位置)。如果真的需要进步,直接把jar放到common lib文件夹下,把依赖设置为
provided -
我检查了目标文件夹和生成的 .war 文件。他们在里面包括了罐子。我再次说,如果这些是问题,那么 vFabric Server 也不会工作?也许我错了,我什么都不知道了。我知道如何编码,但设置总是我浪费时间的地方。
标签: apache tomcat jdbc connection