2013-02-19 81 views
0

我想将Hibernate Spring c3p0和JPA集成到生产就绪状态。但我不断获取此错误Spring Hibernate c3p0 JPA实现抛出一个没有驱动程序发现错误

2013-02-19T07:55:24+00:00 app[web.1]: 07:55:24,556 DEBUG BasicResourcePool:1644 - trace [email protected] [managed: 0, unused: 0, excluded: 0] 
2013-02-19T07:55:24+00:00 app[web.1]: 07:55:24,559 DEBUG BasicResourcePool:1831 - An exception occurred while acquiring a poolable resource. Will retry. 
2013-02-19T07:55:24+00:00 app[web.1]: java.sql.SQLException: No suitable driver 
2013-02-19T07:55:24+00:00 app[web.1]: at java.sql.DriverManager.getDriver(DriverManager.java:279) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:224) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:120) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:143) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:132) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547) 
2013-02-19T07:55:24+00:00 app[web.1]: 07:55:24,562 WARN BasicResourcePool:1841 - [email protected]df -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (1). Last acquisition attempt exception: 
2013-02-19T07:55:24+00:00 app[web.1]: java.sql.SQLException: No suitable driver 
2013-02-19T07:55:24+00:00 app[web.1]: at java.sql.DriverManager.getDriver(DriverManager.java:279) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:224) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:120) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:143) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:132) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810) 
2013-02-19T07:55:24+00:00 app[web.1]: at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547) 
2013-02-19T07:55:24+00:00 app[web.1]: 07:55:24,559 DEBUG BasicResourcePool:1831 - An exception occurred while acquiring a poolable resource. Will retry. 
2013-02-19T07:55:24+00:00 app[web.1]: java.sql.SQLException: No suitable driver 

这里是我的pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.example</groupId> 
<artifactId>Reservosity</artifactId> 
<packaging>war</packaging> 
<version>0.0.1-SNAPSHOT</version> 

<properties> 
    <org.springframework.version>3.1.1.RELEASE</org.springframework.version> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.0.1</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>taglibs</groupId> 
     <artifactId>standard</artifactId> 
     <version>1.1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hsqldb</groupId> 
     <artifactId>hsqldb</artifactId> 
     <version>2.2.8</version> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.20</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-dbcp</groupId> 
     <artifactId>commons-dbcp</artifactId> 
     <version>1.4</version> 
    </dependency> 
    <dependency> 
     <groupId>com.github.jsimone</groupId> 
     <artifactId>webapp-runner</artifactId> 
     <version>7.0.27.1</version> 
     <scope>provided</scope> 
    </dependency> 


    <!-- Tiles dependency --> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-core</artifactId> 
     <version>2.2.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-jsp</artifactId> 
     <version>2.2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-api</artifactId> 
     <version>2.2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-servlet</artifactId> 
     <version>2.2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-template</artifactId> 
     <version>2.2.1</version> 
    </dependency> 

    <!-- Security --> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-core</artifactId> 
     <version>3.1.3.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-web</artifactId> 
     <version>3.1.3.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-config</artifactId> 
     <version>3.1.3.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.validation</groupId> 
     <artifactId>validation-api</artifactId> 
     <version>1.0.0.GA</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>4.1.4.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
     <version>4.3.1.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-c3p0</artifactId> 
     <version>4.1.4.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>joda-time</groupId> 
     <artifactId>joda-time</artifactId> 
     <version>2.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-mapper-asl</artifactId> 
     <version>1.9.11</version> 
    </dependency> 
    <!-- Junit API --> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.mockito</groupId> 
     <artifactId>mockito-all</artifactId> 
     <version>1.9.5</version> 
    </dependency> 


    <!-- JavaMail API --> 
    <dependency> 
     <groupId>javamail</groupId> 
     <artifactId>javamail</artifactId> 
     <version>1.3.3</version> 
    </dependency> 
    <!-- Java Activation --> 
    <dependency> 
     <groupId>javax.activation</groupId> 
     <artifactId>activation</artifactId> 
     <version>1.1.1</version> 
    </dependency> 
    <!-- JavaMail extension --> 
    <dependency> 
     <groupId>javax.mail</groupId> 
     <artifactId>mail</artifactId> 
     <version>1.4.6-rc1</version> 
    </dependency> 
    <!-- LOG4J --> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.17</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.5.6</version> 
    </dependency> 

    <!-- The newrelic-agent.jar dependency. --> 
    <dependency> 
     <groupId>com.newrelic.agent.java</groupId> 
     <artifactId>newrelic-agent</artifactId> 
     <version>2.12.0</version> 
     <scope>provided</scope> 
    </dependency> 
    <!-- The newrelic-api.jar dependency. --> 
    <dependency> 
     <groupId>com.newrelic.agent.java</groupId> 
     <artifactId>newrelic-api</artifactId> 
     <version>2.12.0</version> 
     <scope>compile</scope> 
    </dependency> 
    <!-- The newrelic-java.zip dependency. --> 
    <dependency> 
     <groupId>com.newrelic.agent.java</groupId> 
     <artifactId>newrelic-java</artifactId> 
     <version>2.12.0</version> 
     <scope>provided</scope> 
     <type>zip</type> 
    </dependency> 
    <dependency> 
     <groupId>aspectj</groupId> 
     <artifactId>aspectjweaver</artifactId> 
     <version>1.5.4</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.2</version> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.6</version> 
      <executions> 
       <execution> 
        <id>unpack-zip</id> 
        <phase>package</phase> 
        <goals> 
         <goal>unpack-dependencies</goal> 
        </goals> 
        <configuration> 
         <artifactItems> 
          <artifactItem> 
           <groupId>com.newrelic.agent.java</groupId> 
           <artifactId>newrelic-java</artifactId> 
           <version>theVersion</version> 
           <type>zip</type> 
           <overWrite>true</overWrite> 
           <outputDirectory>target</outputDirectory> 
           <destFileName>newrelic</destFileName> 
          </artifactItem> 
         </artifactItems> 
         <outputDirectory>/newrelic</outputDirectory> 
        </configuration> 
       </execution> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>copy</goal> 
        </goals> 
        <configuration> 
         <artifactItems> 
          <artifactItem> 
           <groupId>com.github.jsimone</groupId> 
           <artifactId>webapp-runner</artifactId> 
           <version>7.0.27.1</version> 
           <destFileName>webapp-runner.jar</destFileName> 
          </artifactItem> 
         </artifactItems> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

的applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jdbc="http://www.springframework.org/schema/jdbc" 
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" 
xmlns:mvc="http://www.springframework.org/schema/mvc" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
         http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd 
         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd 
         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd 
         http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> 

<context:annotation-config /> 
<context:component-scan base-package="com.muuves.reservosity" /> 

<mvc:annotation-driven /> 
<bean id="tilesConfigurer" 
    class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
    <property name="definitions"> 
     <list> 
      <value>/WEB-INF/tiles/tiles.xml</value> 
     </list> 
    </property> 
</bean> 

<bean class="org.springframework.web.servlet.view.tiles2.TilesViewResolver"> 
    <property name="viewClass" 
     value="org.springframework.web.servlet.view.tiles2.TilesView" /> 
</bean> 

<tx:annotation-driven /> 

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory" /> 
    <property name="dataSource" ref="dataSource" /> 
</bean> 
<beans profile="default"> 
    <bean class="java.net.URI" id="dbUrl"> 
     <constructor-arg value="http://localhost:3306/reservosity" /> 
    </bean> 

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
     <property name="url" 
      value="jdbc:mysql://localhost:3306/reservosity" /> 
     <property name="username" value="root" /> 
     <property name="password" value="toor" /> 
    </bean> 

    <bean id="entityManagerFactory" 
     class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="jpaVendorAdapter"> 
      <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" /> 
     </property> 
     <property name="jpaProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
       <prop key="hibernate.show_sql">true</prop> 
       <prop key="hibernate.hbm2ddl.auto">verify</prop> 
       <prop key="hibernate.current_session_context_class">thread</prop> 
      </props> 
     </property> 
    </bean> 
</beans> 


<beans profile="prod"> 
    <bean class="java.net.URI" id="dbUrl"> 
     <constructor-arg value="#{systemEnvironment['CLEARDB_DATABASE_URL']}" /> 
    </bean> 

    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> 
     <property name="driverClass" value="com.mysql.jdbc.Driver" /> 
     <property name="jdbcUrl" 
      value="#{ 'jdbc:mysql://' + @dbUrl.getHost() + @dbUrl.getPath() }" /> 
     <property name="user" value="#{ @dbUrl.getUserInfo().split(':')[0] }" /> 
     <property name="password" value="#{ @dbUrl.getUserInfo().split(':')[1] }" /> 
    </bean> 

    <bean id="entityManagerFactory" 
     class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="jpaVendorAdapter"> 
      <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" /> 
     </property> 
     <property name="jpaProperties"> 
      <props> 
       <prop key="hibernate.connection.provider_class">org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider</prop> 
       <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
       <prop key="hibernate.show_sql">true</prop> 
       <prop key="hibernate.hbm2ddl.auto">verify</prop> 
       <prop key="hibernate.current_session_context_class">thread</prop> 
       <prop key="hibernate.c3p0.acquire_increment">1</prop> 
       <prop key="hibernate.c3p0.min_size">5</prop> 
       <prop key="hibernate.c3p0.max_size">20</prop> 
       <prop key="hibernate.c3p0.timeout">5000</prop> 
       <prop key="hibernate.c3p0.max_statements">100</prop> 
       <prop key="hibernate.c3p0.idle_test_period">3000</prop> 
       <prop key="hibernate.c3p0.testConnectionOnCheckout">true</prop> 
       <prop key="hibernate.c3p0.acquireRetryAttempts">1</prop> 
      </props> 
     </property> 
    </bean> 
</beans> 

安全-的context.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:security="http://www.springframework.org/schema/security" 
xmlns:context="http://www.springframework.org/schema/context" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
         http://www.springframework.org/schema/beans/spring-beans.xsd 
         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd 
         http://www.springframework.org/schema/security 
         http://www.springframework.org/schema/security/spring-security-3.1.xsd"> 

<!-- <security:http auto-config='true'> --> 
<security:http auto-config='true' use-expressions='true' 
    once-per-request='false'> 
    <security:intercept-url pattern="/welcome*" 
     access="IS_AUTHENTICATED_ANONYMOUSLY" /> 
    <security:intercept-url pattern="/secure/**" 
     access="ROLE_USER" requires-channel="https" /> 
    <security:intercept-url pattern="/**" 
     access="hasRole('ROLE_USER')" requires-channel="any" /> 
    <security:intercept-url pattern="favicon.ico" 
     access="permitAll" /> 
    <!-- <security:session-management session-fixation-protection="migrateSession"/> --> 

    <!-- Make sure you are not sending login/password in plain text on open 
     channel. Use SSL (https) instead --> 
    <!-- <security:intercept-url pattern="/login" requires-channel="https"/> 
     <security:intercept-url pattern="/j_spring_security_check" requires-channel="https"/> 
     <security:intercept-url pattern="/**" requires-channel="http"/> form login 
     <security:form-login login-processing-url="/j_spring_security_check" login-page="/**" 
     authentication-failure-url="/login?login_error=true" /> <security:logout 
     /> --> 

    <!-- logout --> 
    <!-- <security:logout logout-url="/j_spring_security_logout"/> --> 

    <!-- remember me --> 
    <!-- <security:remember-me key="rememberMeKey" user-service-ref="companyServiceImpl"/> --> 
</security:http> 

<security:authentication-manager> 
    <security:authentication-provider 
     user-service-ref="authenticationServiceImpl" /> 
</security:authentication-manager> 

META-INF/persistance.xml

<persistence-unit name="dataSource" transaction-type="RESOURCE_LOCAL"> 
</persistence-unit> 

我将不胜感激任何人的帮助,谢谢!

回答

0

改变了固定它yeeeeeeeeeeeeeeeeeeeees

的persistence.xml

<?xml version="1.0" encoding="utf-8"?> 
<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 
     version="2.0"> 

<persistence-unit name="dataSource"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
      <properties> 
       <property key="hibernate.connection.provider_class">org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider</property> 
       <property key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
       <property key="hibernate.show_sql">true</property> 
       <property key="hibernate.hbm2ddl.auto">verify</property> 
       <property key="hibernate.current_session_context_class">thread</property> 
       <property key="hibernate.c3p0.acquire_increment">1</property> 
       <property key="hibernate.c3p0.min_size">5</property> 
       <property key="hibernate.c3p0.max_size">20</property> 
       <property key="hibernate.c3p0.timeout">5000</property> 
       <property key="hibernate.c3p0.max_statements">100</property> 
       <property key="hibernate.c3p0.idle_test_period">3000</property> 
       <property key="hibernate.c3p0.testConnectionOnCheckout">true</property> 
       <property key="hibernate.c3p0.acquireRetryAttempts">1</property> 
     </properties> 
</persistence-unit> 

的applicationContext.xml

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
     <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 
     <property name="url" 
      value="#{ 'jdbc:mysql://' + @dbUrl.getHost() + @dbUrl.getPath() }" /> 
     <property name="username" value="#{ @dbUrl.getUserInfo().split(':')[0] }" /> 
     <property name="password" value="#{ @dbUrl.getUserInfo().split(':')[1] }" /> 
    </bean> 

    <bean id="entityManagerFactory" 
     class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="jpaVendorAdapter"> 
      <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" /> 
     </property> 
    </bean> 
以下
相关问题