2011-02-22 6 views
1

내 데이터베이스로 hsqldb standalone을 사용하고 있습니다. 나는 나의 프로젝트가 내 hsqldb.jar 인 것을 알 수 있도록 나의 프로젝트 빌드 경로에 추가 한 hsqldb.jar(hsqldb-2.0.0)을 가지고있다. 나는 이것들과 함께 봄을 사용하고있다. 내 봄 콩은 다음과 같습니다org.apache.commons.dbcp.SQLNestedException을 해결하는 방법

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

    <bean id="sqlMapClient" 
     class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> 

     <property name="dataSource"> 
      <ref local="adapterDataSource" /> 
     </property> 


     <property name="configLocation" 
      value="classpath:/com/hsqldb/example/dao/ibatis/SqlMapConfig.xml" /> 


    </bean> 

    <bean id="adapterDataSource" 
     class="org.apache.commons.dbcp.BasicDataSource" 
     destroy-method="close"> 
     <property name="driverClassName" value="org.hsqldb.jdbcDriver" /> 
     <property name="url" value="data/db/hsqldb.jar" /> 
     <property name="username" value="SA" /> 
     <property name="password" value="password" /> 
    </bean> 
    <bean id="testingDao" class="com.hsqldb.example.dao.TestingDao" 
     init-method="setTestDao" depends-on="moodleAuthenticationDetails"> 
     <property name="sqlMapClient"> 
      <ref local="sqlMapClient" /> 
     </property> 

    </bean> 
    <bean id="moodleAuthenticationDetails" 
     class="com.hsqldb.example.HsqlDBAuthentication"></bean> 
</beans> 

와 나는 나에게 다음과 같습니다 데이터 소스 반환하는 방법이 있습니다

public static DataSource getDataSource(String filePath){ 
     String url; 
     //url="jdbc:hsqldb:file:"+filePath; 
     url = "jdbc:hsqldb:file:D:/EclipseWorskpace/ew-pg/lmexadapter/hsqldb-example/src/main/webapp/WEB-INF/data/db/hsqldb.jar"; 
     BasicDataSource basicDataSource = new BasicDataSource(); 
     basicDataSource.setUsername("SA"); 
     basicDataSource.setPassword("password"); 
     basicDataSource.setDriverClassName("org.hsqldb.jdbc.JDBCDriver"); 
//  basicDataSource.setUrl("jdbc:mysql://IP/moodle"); 
     basicDataSource.setUrl(url); 
     System.out.println("$$$$$$$$ URL is : " + url); 
     return basicDataSource; 
    } 

을하지만 JUnit 테스트로 내 테스트 케이스를 실행하는 동안 그것이 나에게 예외를주고 있어요 :

org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class 'org.hsqldb.jdbcDriver' for connect URL 'data/db/hsqldb.jar' 
    at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1273) 
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1192) 
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:884) 
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113) 
    at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:213) 
    ... 35 more 
Caused by: java.sql.SQLException: No suitable driver 
    at java.sql.DriverManager.getDriver(DriverManager.java:264) 
    at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1266) 
    ... 39 more 

이 문제를 해결하려면 도움을 받으십시오.

는 항아리의 경로 안 귀하의 봄 설정에서 당신에게

답변

1

BasicDataSourceurl 속성을 감사드립니다. Spring 설정이 작동하는 몇 가지 예제를 보시려면 here을보십시오.

(당신은 아무것도하지 않습니다 작성한 DataSource 클래스는 그것의 봄을 인식하지 않는 한하지만 이러한 클래스를 작성할 필요가 없습니다 -.. 당신의 설정에서 url 속성을 수정)

관련 문제