2013-10-07 5 views
0

Я использую oracle 11g и пытаюсь загрузить проект java с помощью утилиты loadjava. У меня есть две разные схемы. loadjava в schema1 выполняется успешно, но в то же время к схеме2 он не загружает класс oracle/sql/ARRAY с ошибкой, которую он не может решить. Когда я пытаюсь создать Java хранимые процедуры и использовать этот класс в этой процедуре, компиляция завершается с ошибкой:Oracle и Java: oracle/sql/ARRAY не могут быть разрешены

bad class file: null class file has wrong version 50.0, should be 49.0 

Я знаю, что это значит. Но мой проект компилируется с 1,5 jdk, а у Oracle DB есть версия Java 1.5_10. (имейте в виду, что в другой схеме, что проект загружает тонкую и ту же хранимую процедуру, работает правильно). И у меня есть ojdbc5.jar в моем пути к классам (Maven). Какие-либо предложения? Я провожу 2 дня, чтобы решить это, но я все еще на этом месте.

+0

schema2, возможно, не являются обязательными. взгляните на различия привилегий schema1 и schema2 – schurik

+0

, это уже существует в схеме1? будет loadjava -разработать работу над схемой1? – tbone

ответ

0

Ну, версия 50.0 означает, что это файл класса Java 1.6. Итак, где-то по пути вы используете новый файл класса. Если бы я был вами, я бы извлек все файлы jar, которые вы используете в проекте, во временный каталог, а затем выясните, какой файл класса неверен.

На UNIX/Linux, вы могли бы сделать это так:

mkdir tmp 
cd tmp 
for i in `ls whereever_your_jar_files_are/*.jar` 
do 
    jar xf $i 
done 
find . -name '*.class' -exec file {} \; | grep 50.0 

Это даст вам некоторое представление о том, какая библиотека обеспечивает более новый версионный файл класс.

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