0

いくつかの DAO 機能をテストするために、Junit テスト クラスで WrappedConnection を取得しようとしています。

私はこのような方法を持っています

public static List<Top5TermFact> getTop5TrendsForPeriodAndAnalysisRule(long arId, String date,  long analysis_type_id ,WrappedConnection  connection)

したがって、私のテストクラスには、この方法でデータソースへの接続を取得しようとするメソッドsetUpClass()があります。

インポートされたクラスは次のとおりです。

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import org.jboss.resource.adapter.jdbc.WrappedConnection;
import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource;

メソッドコードは次のとおりです。

@BeforeClass
public static void setUpClass() throws Exception {
    // rcarver - setup the jndi context and the datasource
    try {

    // Create initial context
    System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.NamingContextFactory");
    System.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jboss.naming");
    InitialContext ic = new InitialContext();
    ic.createSubcontext("java:/comp");
    ic.createSubcontext("java:/comp/env");
    ic.createSubcontext("java:/comp/env/jdbc");

    // Construct DataSource
    MysqlXADataSource pool = new MysqlXADataSource();
    pool.setURL("jdbc:mysql://192.168.xx.xxx:3306/db_name");
    pool.setUser("root");
    pool.setPassword("password");
    ic.bind("java:/comp/env/jdbc/social_coop", pool);

    Context initContext = new InitialContext();
    Context webContext = (Context) initContext.lookup("java:/comp/env");

    DataSource ds = (DataSource) webContext.lookup("jdbc/social_coop");

    con = (WrappedConnection)ds.getConnection();
    con.setAutoCommit(true);


    } catch (Exception ex) {
        ex.printStackTrace();
    }

}

これは例外を返します:

$java.lang.ClassCastException: com.mysql.jdbc.JDBC4Connection cannot be cast
to org.jboss.resource.adapter.jdbc.WrappedConnection at
it.netseven.socialproxy.test.TrendAnalysisRelationsFiller.
setUpClass(TrendAnalysisRelationsFiller.java:92)
[...]

したがって、問題は次の行にあります。

con = (WrappedConnection)ds.getConnection();

何か案は?TNX

4

0 に答える 0