2011-12-14 31 views
0

私はできるだけ公式化しようとします。Tomcatサーバー上のjdbc接続

まず、Webアプリケーション(春JDBCで春MVC)は、Java 7の機能に

セカンドを得るために、私はSTSのバージョン(EclipseベースのSpringツールスイート)で出いじり始めるまでうまく働いたとJDK + JRE7現在の問題は、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 

私はWebアプリケーションからデータベースを操作しようとするといつも起こる。

jdbc:postgresql:postgresという行は、以前と同じように動作し、実際にはpostgresという名前のローカルデータベースに接続するように指定されているため、(場合によっては以下の点でも)OKです。

もう1つの重要な点は、vFabric tc Serverではすべてが問題なく完全に機能することです。

第3に、データベースはPostgreSQLとApache DBCPプーリングです。

第4に、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 

私は助けてください、本当に絶望的です。

UPDATE:

はまだ悲しい画面を見る前に座って、私はすべての.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> 
+0

どのようにドライバをロードしていますか? – PseudoNinja

+0

春のコンフィギュレーションファイルの配線、私はそれを投稿しますか? – Aubergine

+0

eclipseがjarを作業フォルダ(.settingsフォルダの下のどこか)にコピーしていることを確認します。本当に進歩する必要がある場合は、共通のlibフォルダにjarファイルを入れ、依存関係をとして設定します。 –

答えて

2

grlでは、DBドライバはおそらくTomcatの共通のlibフォルダに入るはずです。 通常、これらのドライバは複数のアプリケーションに使用されます。

さらに、context.xmlでプールを設定する場合は、これが必須です。

+0

@Aubergine私はこの男が言ったことを第二に行くよ – PseudoNinja

+0

あなたが言ったようにまあ、私はやった。 (私は個人的に以前にそれをやっていることは覚えていませんが)それでも仕事はできません。tomcat/libのmaven依存関係、同じjarファイルと全く同じバージョンが含まれていました。ああ、私はとても悲しくなってきています。 – Aubergine

+0

問題はおそらくEclipseです。 Tomcatのconfウィンドウのクラスパスにエントリを追加してみてください。私はちょうどそれを試み、それは働いた。したがって、アプリケーションのコンテキストは正常です。あなたのpostgresql依存関係を投稿できますか? コモンズ-DBCP コモンズ-DBCP 1.4 のpostgresql のpostgresql 9.1-901.jdbc4 :私は(春3.0.6.RELEASE)を使用しました