Развертывание модуля UDF в JBoss Data Virt приводит к NoClassDefFoundError ... CommandContext - PullRequest
0 голосов
/ 07 сентября 2018

Я попытался использовать пример быстрого запуска интеграции drools (который мне удалось построить и успешно развернуть), чтобы создать шаблон для простой функции, которая принимает объект и возвращает объект.

Object foo(Object p) {
    return p;
}

Когда я пытаюсь развернуть соответствующий файл vdb.xml, я получаю следующее сообщение об ошибке:

ERROR [stderr] (teiid-async-threads - 2) Exception in thread "teiid-async-threads - 2" java.lang.NoClassDefFoundError: org/teiid/query/util/CommandContext
.
.
ERROR [stderr] (teiid-async-threads - 2) Caused by: java.lang.ClassNotFoundException: org.teiid.query.util.CommandContext from [Module "com.acme:main" from local module loader ...

Есть идеи, что заставляет JDV не находить CommandContext?

Обновление: После перезапуска JDV (и перезагрузки всех модулей) я получаю сообщение

WARN  [org.teiid.PLANNER.RESOLVER] (teiid-async-threads - 4) TEIID31080 myView.MyView validation error: TEIID30070 The Function 'JSONTOXML('foo, MYFUNC(w.result))' is a valid function form, but the arguments do not match a known type signature and cannot be converted using implicit type conversions.
WARN [org.teiid.PLANNER.RESOLVER] (teiid-async-threads - 4) TEIID31073 Invalid functions; Translator metadata load myView []

Это менее загадочно и предполагает, что виновником является Object, используемый для параметров и возвращаемых типов, в отличие от Blob или Clob (или BloblType или ClobType, основанный на коде в XMLSystemFunctions для логики JSON-to-XML). Тем не менее, приведенные выше результаты показывают, что перезагрузка или перезапуск JDV может устранить ошибочные ложные срабатывания при устранении неполадок развертывания модуля / vdb.

Обновление: Решением было предоставить две (перегруженные) версии моей UDF, одну для Clob и одну для Blob.

...