Сервер переехал на новый сайт http://www.oraclegis.com/blog. Здесь идет ретрансляция

суббота, 13 декабря 2008 г.

Отсутствует класс com.sunopsis.sdk.opentools.SnpsOpenToolAbstract

В 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/

Дальше можно делать по инструкции.

Комментариев нет: