2015-01-07 3 views
0

Я развернул свое ухо в JBOSS 7.1.1 AS. Для просмотра документа в приложении мы используем BFILE. Ниже код используется:oracle.jdbc.driver.T4CConnection нельзя отнести к oracle.jdbc.OracleConnection в JBOSS EAP 6.1

Connection con = this.jdbcTemplate.getDataSource().getConnection(); 
con = unwrapConnection(con); 

if(null != con) 
{ 
    System.out.println("Is conncetion Closed" + con.isClosed()); 
    PreparedStatement ps = con.prepareStatement(sql); 
    ResultSet rs = ps.executeQuery(); 
    while(rs.next()) { 
    { 
     OracleResultSet ors = rs.unwrap(OracleResultSet.class); 
     bfile = ors.getBFILE(1); 
     fileName = rs.getString(2); 
     docFormat = rs.getString(3); 
    } 
    bfileMap.put("EventDocDetails", bfile); 
    bfileMap.put("Format", docFormat); 
    bfileMap.put("FileName", fileName); 
} 

private static Connection unwrapConnection(Connection connection) throws SQLException { 

    System.out 
     .println("Datasource is maintained by Jboss so Unwarping Jboss JDBC Connection to oracle.jdbc.OracleConnection. Driver name is " 
      + connection.getMetaData().getDriverName()); 
    return (oracle.jdbc.OracleConnection) ((WrappedConnection) connection) 
     .getUnderlyingConnection(); 
} 

Мы используем Ojdc6.11.2.0.3 баночку. В проявлении уха у меня есть зависимости org.jboss.ironjacamar.jdbcadapters.

Это прекрасно работает для JBOSS AS 7.1.1

Но то же ухо не работает в JBOSS EAP 6.1 я получаю ниже исключения

oracle.jdbc.driver.T4CConnection cannot be cast to oracle.jdbc.OracleConnection 
19:54:51,395 ERROR [stderr] (http-/192.168.178.31:8080-5) java.lang.ClassCastException: oracle.jdbc.driver.T4CConnection cannot be cast to oracle.jdbc.OracleConnection. 

Я сбит с толку, как почти все вещи одинаковы.

ответ

0

Кажется, что проблема с загрузкой из-за двух одинаковых классов существует в Jboss и в вашем приложении (WAR или EAR). В моем Jboss 6.3 я нашел jboss \ modules \ com \ oracle \ ojdbc6.jar с T4CConnection.class, внутри которого может быть причина. Если она существует в вашем JBoss вы можете исключить, что Лив в JBoss-развертываниях-structure.xml как:

<deployment> 
    <exclusions> 
     <module name="com.oracle.ojdbc6"/> 
    </exclusions> 
</deployment> 

Надеется, что это помогает.

0

После большой царапины головы я удалил диск JDBC с консоли JBOSS и добавил новый. Он работал.

Смежные вопросы