MSSQL 사용 문의
- 작성자 :
- 장*철
- 작성일 :
- 2011-07-18 09:44:57
- 조회수 :
- 3,162
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
수고하십니다.
제가 공통컴포넌트를 MSSQL 환경에서 사용해보려고 하고 있는데요..
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.microsoft.jdbc.sqlserver.SQLServerDriver'
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:200)
... 105 more
Caused by: java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1130)
... 107 more
위와 같은 내용의 오류가 발생합니다.
내용을 검색해 보니까
sqljdbc.jar (sql-jdbc 드라이버)을 톰캣 라이브러리 폴더에 넣거나
프로젝트의 WEB-INF/lib 폴더에 넣어 보라는 글이 있어서 그렇게 하고
pom.xml에
<!-- mssql -->
<dependency>
<groupId>com.microsoft.sqlserver.jdbc</groupId>
<artifactId>sqljdbc</artifactId>
<version>3.0</version>
</dependency>
context-datasource.xml 에
<!-- MSSql -->
<bean id="dataSource-mssql" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
<property name="url" value="jdbc:microsoft:sqlserver://000.000.00.00:000/name" />
<property name="username" value="user"/>
<property name="password" value="pwd"/>
</bean>
의 내용을 추가하였습니다.
뭐가 잘못된건지 모르겠습니다.
감사합니다.
제가 공통컴포넌트를 MSSQL 환경에서 사용해보려고 하고 있는데요..
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.microsoft.jdbc.sqlserver.SQLServerDriver'
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:200)
... 105 more
Caused by: java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1130)
... 107 more
위와 같은 내용의 오류가 발생합니다.
내용을 검색해 보니까
sqljdbc.jar (sql-jdbc 드라이버)을 톰캣 라이브러리 폴더에 넣거나
프로젝트의 WEB-INF/lib 폴더에 넣어 보라는 글이 있어서 그렇게 하고
pom.xml에
<!-- mssql -->
<dependency>
<groupId>com.microsoft.sqlserver.jdbc</groupId>
<artifactId>sqljdbc</artifactId>
<version>3.0</version>
</dependency>
context-datasource.xml 에
<!-- MSSql -->
<bean id="dataSource-mssql" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
<property name="url" value="jdbc:microsoft:sqlserver://000.000.00.00:000/name" />
<property name="username" value="user"/>
<property name="password" value="pwd"/>
</bean>
의 내용을 추가하였습니다.
뭐가 잘못된건지 모르겠습니다.
감사합니다.
A
문의하신 내용에 답변드립니다.
우선 MS SQL JDBC 드라이버를 못 찾는 에러인 듯 합니다. 여러가지 원인이 있을 수 있으리라 생각됩니다. 우선 JDBC 드라이버가 제대로 디플로이 되었는지 확인이 필요합니다. 말씀하신대로 해당 jar 파일이 톰캣 라이브러리 폴더나 프로젝트 WEB-INF/lib 폴더에 존재하는지 확인 해 보시기 바랍니다. 물론 둘 중 한 군데에만 존재하도록 디플로이 하셔야 합니다. 메이븐 디펜던시로 설정을 하셨다면 톰캣 라이브러리 폴더에 올라가 있는 JDBC jar 파일은 삭제하시고 WEB-INF/lib 폴더에 존재하는지 확인하시면 될 듯 합니다. 만약 존재하는게 확인되었다면 설정이나 버전 문제일 수 있습니다. 말씀하신 설정파일(context-datasource.xml)에서 설정한 "com.microsoft.jdbc.sqlserver.SQLServerDriver" 클래스가 해당 jar파일 안에 존재하는지 확인해 보셔야 합니다. 또한 아마도 JDK 1.5 이상 버전을 사용하시게 될 텐데... 자바 나 톰캣 버전과 문제가 없는지 해당 JDBC 드라이버 버전을 확인해 보시기 바랍니다.
우선 MS SQL JDBC 드라이버를 못 찾는 에러인 듯 합니다. 여러가지 원인이 있을 수 있으리라 생각됩니다. 우선 JDBC 드라이버가 제대로 디플로이 되었는지 확인이 필요합니다. 말씀하신대로 해당 jar 파일이 톰캣 라이브러리 폴더나 프로젝트 WEB-INF/lib 폴더에 존재하는지 확인 해 보시기 바랍니다. 물론 둘 중 한 군데에만 존재하도록 디플로이 하셔야 합니다. 메이븐 디펜던시로 설정을 하셨다면 톰캣 라이브러리 폴더에 올라가 있는 JDBC jar 파일은 삭제하시고 WEB-INF/lib 폴더에 존재하는지 확인하시면 될 듯 합니다. 만약 존재하는게 확인되었다면 설정이나 버전 문제일 수 있습니다. 말씀하신 설정파일(context-datasource.xml)에서 설정한 "com.microsoft.jdbc.sqlserver.SQLServerDriver" 클래스가 해당 jar파일 안에 존재하는지 확인해 보셔야 합니다. 또한 아마도 JDK 1.5 이상 버전을 사용하시게 될 텐데... 자바 나 톰캣 버전과 문제가 없는지 해당 JDBC 드라이버 버전을 확인해 보시기 바랍니다.