org.apache.tomcat.dbcp.dbcp.BasicDataSource를 net.sourceforge.jtds.jdbcx.JtdsDataSource로 캐스트 할 수 없습니다.

user2809072

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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관