2013-12-10 2 views
2

jdbcTemplate.query을 사용하려고하는데 클래스를 찾을 수 없습니다. 오류가 발생합니다. 나는 spring-dao 2.0.8을 사용하고 있으며 라이브러리를 들여다 보았고 실제로 DuplicateKeyException 클래스를 찾을 수 없었다. maven repository에서 이것은 spring-dao의 최신 릴리스 인 것 같습니다.스프링 DAO 클래스를 찾을 수 없습니다. org.springframework.dao.DuplicateKeyException

나는 오류가 발생하고 코드는 다음과 같습니다

ResultSet resultSet = (ResultSet)jdbcTemplate.query (query, new ResultSetExtractor<ResultSet>() { 
      @Override 
      public ResultSet extractData(ResultSet rs) throws SQLException, DataAccessException { 
       return rs; 
      } 
     }); 

그리고 스택 :

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/dao/DuplicateKeyException 
    at org.springframework.jdbc.support.JdbcAccessor.getExceptionTranslator(JdbcAccessor.java:99) 
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:407) 
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:456) 
    at DAO.MySQLAccess.getAccounts(MySQLAccess.java:95) 
Caused by: java.lang.ClassNotFoundException: org.springframework.dao.DuplicateKeyException 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
    ... 7 more 

이 최신 버전이 아니거나 왜 처음부터 오류를주고있다 ?

답변

4

classpath에 jar가 없습니다. 당신이 메이븐을 사용하지 않는 것 같아요.

이 클래스가 포함 된 jar 파일을 검색 한 결과이 기능이 생겼습니다.
http://mavenhub.com/c/org/springframework/dao/DuplicateKeyException/jar

org.springframework.transaction jar가 필요합니다. 또는 maven을 사용하면 의존성을 해결할 수 있습니다.

+2

당신이 맞습니다. 그것은 'spring-tx' 단지가 없습니다. 이상하게도 언급하지 않았지만 이미 포함 된 '봄 - 도오 (spring-dao)'수업을 요구했습니다. Maven을 사용하지 않고 이미 프로젝트를 시작 했으므로 Maven을 사용하지 않았습니다. 시도하지 않아도됩니다. 전에는 Maven을 사용하지 않았습니다. –

+0

나는 시간이 없었기 때문에 나이를 먹으려 고 노력했다. 결국 나는 총알을 물었고, 내가 그것을 더 일찍 바랐 으면 좋겠다고 생각했다. 방금 플러그인을 설치하고 새 프로젝트를 만들려고했습니다. 공정하기 위해 새로운 프로젝트 마법사는 다소 비판적이지만 일단 기본 프로젝트를 얻으면 다른 모든 작업을 쉽게 처리 할 수 ​​있습니다. 나는 더 이상 항아리가없는 곳에서 사냥 할 필요가 없다. 또한 단위 테스트 및 코드 생성을 자동화하는데도 사용했습니다. 글쎄 IMHO 봐 가치. –

+0

P. upvote 주셔서 감사합니다. 귀하의 오류는 대개 누락 된 종속성 인 ClassNotFoundException입니다. 어느 항아리가 필요한지는 알려주지 않을 것입니다. 온라인에서 찾아 내야합니다. –

관련 문제