2013-09-30 2 views
0

데이터베이스 호출을 작성하기 위해 jdbcTemplate을 사용하고 있지만 autowired했지만 jdbcTemplate 인스턴스가 없습니다. 봄 applicationContext.xml에서 스프링 주석을 사용하여 jdbcTemplate의 인스턴스를 가져 오지 못했습니다.

package com.mypackage.dao 
@Repository 
public class CustomerDaoImpl implements CustomerDao { 

private JdbcTemplate jdbcTemplate; 

@Autowired 
public void setDataSource(DataSource dataSource) { 
    this.jdbcTemplate = new JdbcTemplate(dataSource); 
} 

public Customer findCustomer(){ 
     ........... 
    jdbcTemplate.execute ...... 
     ........... 
    } 
} 

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
    <property name="driverClassName" value="${database.driverClassName}" /> 
    <property name="url" value="${database.url}" /> 
    <property name="username" value="${database.username}" /> 
    <property name="password" value="${database.password}" /> 
    <property name="initialSize" value="1" /> 
    <property name="maxActive" value="3" /> 
</bean> 

<context:component-scan base-package="com.mypackage"> 
    <context:exclude-filter expression="org.springframework.stereotype.Controller" 
     type="annotation" /> 
</context:component-scan> 

database.properties 어떤 영역에서 내가 실수를 만들고있어

database.url=jdbc:oracle:thin:@myhost:1521:OQA1 
database.username=my_app 
database.password=my_app_password 
database.driverClassName=oracle.jdbc.OracleDriver 

파일?

---------------- 편집 : 상위 계층을 추가 ----------------

package com.mypackage.rest 

    @Service("customerResource") 
    @Path("/customer") 
    public class CustomerResource extends AbstractResource{ 

    @Autowired 
    private CustomerDao customerDao; 

    } 
+0

이것은 괜찮습니다. 예외는 무엇입니까? database.properties 파일이 Spring에 의해로드되어 있습니까? 당신은 tx : annotation-driven? –

+0

응용 프로그램 예외가 표시됩니까? –

+0

@FredClose 닫기 jpaTemplate 인스턴스가 초기화되지 않아 NullPointer를 제외한 모든 예외가 표시되지 않습니다. 나는 tx를 가능하게하지 않았다 : 주석 중심 적으로,이 문제가 발생할 것인가? – Pankaj

답변

0

드라이버 클래스가 잘못되었습니다.

database.driverClassName=oracle.jdbc.driver.OracleDriver 
+0

그러면 앱을 시작할 수 없게됩니다. 문제는 필드가 자동으로 실행되지 않는다는 것입니다. –

+0

예 jdbcTemplate에 대해 널 포인터 예외가 발생 했으므로 동의합니다.하지만 드라이버 클래스에서만 차이가 있습니다. –

+0

'odjbc14.jar'에'oracle.jdbc.OracleDriver' 클래스가 있다는 것에 유의하십시오. 다른 항아리가 있는지 또는 얇은 오라클을위한 올바른 드라이버인지는 알 수 없습니다. –