В Oracle Data integrator есть интересная возможность по расширую функциональности – OpenTool. Эта возможность позволяет на Java написать то, что еще не реализовано в ODI.
Достался этот функционал от старого доброго Sunopsis. Oracle потихоньку начал перекраивать функционал под свои нужды. Соответственно возникают коллизии. Вот на одну такую коллизию наткнулся.
Я пытался запустить пример, поставляемый в дистрибутиве – SimpleMessageBox. Класс написан на старой версии Sunopsis и там же скомпилирован. В настоящий момент ряд классов переименованы – в частности такого класса как com.sunopsis.sdk.opentools.SnpsOpenToolAbstract не стало, а появился класс oracle.odi.sdk.opentools.OpenToolAbstract. Как результат – при попытке загрузить OpenTool из класса SimpleMessageBox получаем ошибку:
java.lang.NoClassDefFoundError: com/sunopsis/sdk/opentools/SnpsOpenToolAbstract
Open Tool not acrivated. Your Open Tool references a class not found
Для того, чтобы решить проблему придется перекомпилировать класс SimpleMessageBox.
Для этого
1. Откроем файл $ODI_HOME/demo/plugins/src/com/myCompany/sunopsisOpenTools/SimpleMessageBox.java и делаем глобальную замену фразы "com.sunopsis.sdk.opentools" на фразу "oracle.odi.sdk.opentools". Кроме того, также глобальной заменой следует заменить "Snps" на "".
2. Компилируем класс SimpleMessageBox из каталога $ODI_HOME/demo/plugins/src/com/myCompany/sunopsisOpenTools/
/opt/jdk1.6.0_11/bin/javac –cp /u01/app/oracle/product/10.3.0.4/oracledi/lib/sunopsis.zip SimpleMessageBox.java
3. Копируем $ODI_HOME/demo/plugins/src/com/myCompany/sunopsisOpenTools/SimpleMessageBox.class в каталог $ODI_HOME/demo/plugins/bin/com/myCompany/sunopsisOpenTools/
Дальше можно делать по инструкции.
Комментариев нет:
Отправить комментарий