ClassCastException - oracle.jdbc.OraclePreparedStatement

Я столкнулся с серьезной проблемой, вот факты -

Я регистрирую конкретный возвращаемый параметр и для этого преобразую java.sql.PreparedStatement в oracle.jdbc. OraclePreparedStatement.

((OraclePreparedStatement) getStatement())
    .registerReturnParameter(index, sqlType);   

Это отлично работает, когда я запускаю это из Eclipse, и оно даже работает должным образом на нашем сервере разработки. Однако именно тогда, когда я перемещаю его на наш тестовый сервер, я обнаруживаю неожиданную ошибку ...

oracle.jdbc.driver.OraclePreparedStatementWrapper cannot be cast
 to oracle.jdbc.OraclePreparedStatement

Это невероятно для меня странная ошибка, потому что я уверен, что OraclePreparedStatement может быть назначен из getStatement (). Я отладил и обнаружил, что это ИСТИНА для всех сред:

//class oracle.jdbc.driver.OraclePreparedStatementWrapper
getStatement().getClass();

Среды LOCAL и DEV используют источник данных, который я установил в META -INF / context.xml:

<Resource name="dataSource/dbsubm" auth="Container"
    type="oracle.jdbc.xa.client.OracleXADataSource"
    factory="org.apache.naming.factory.BeanFactory"
    user="*****" password="******"
    URL="jdbc:oracle:thin:@host:port:db" />

Тестовая среда отличается тем, что в ней есть источник данных из server.xml, хотя конфигурация точно такая же. Для меня это единственное различие между этими средами.

Что может быть Проблема? Почему я получаю исключение ClassCastException с использованием того же кода, но в разных средах? Использование getCl ass () Я могу сказать, что все они одного типа ... пожалуйста, помогите!

5
задан John Strickler 4 August 2011 в 13:59
поделиться