jTDS JDBC 드라이버를 사용하여 (로컬) SQL 데이터베이스에 연결하려고합니다.
자바 코드
private JtdsDataSource dataSource = null;
public Connection getConnection() throws SQLException, NamingException {
...
Context initContext = new InitialContext();
dataSource = (JtdsDataSource) initContext.lookup("java:comp/env/jdbc/postcodes");
conn = dataSource.getConnection();
...
}
CONTEXT.XML
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/postcodes"
auth="Container"
type="javax.sql.DataSource"
username="user"
password="pass"
driverClassName="net.sourceforge.jtds.jdbcx.JtdsDataSource"
url="jdbc:jtds:sqlserver://localhost:1433/AUSPostcodes"
validationQuery="select 1"
maxActive="10"
maxIdle="4"/>
</Context>
바람둥이에서 이것을 실행하면 다음 오류가 발생합니다 ....
java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.BasicDataSource cannot be cast to net.sourceforge.jtds.jdbcx.JtdsDataSource
이것에 대한 도움을 주시면 감사하겠습니다.
미리 감사드립니다.
Tomcat은 JtdsDataSource
직접 액세스 권한을 제공하지 않습니다 . 내부 DBCP 데이터 소스를 채우기 위해 해당 데이터 소스 만 사용합니다. JNDI를 사용하여 데이터 소스를 요청할 때 DBCP 데이터 소스를 얻습니다.
BTW : (보통) .NET 이외의 다른 인터페이스로 캐스팅 할 이유가 없습니다 javax.sql.DataSource
. 이에 대한 해결책은 해당 인터페이스 ( javax.sql.DataSource
) 로 캐스트하는 것입니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다