Пользовательская функция не поддерживается Major.minor версия 51.0 TIBCO Designer 5.7 - PullRequest
0 голосов
/ 08 февраля 2019

Я использую TIBCO Designer 5.7.

В палитре Mapper моего кода Designer я использую пользовательскую функцию Java «Утилиты», но при ее использовании я получаю сообщение об ошибке «Пользовательская функция».Утилиты: Неподдерживаемая версия major.minor 51.0 ". В разделе XPath говорится" нет такой функции ".Я предполагаю, что это из-за несовместимости Java TIBCO с моим Java JDK.Может кто-нибудь подробно объяснить, как решить эту проблему?

Пожалуйста, обратитесь к изображению для ошибки.

error

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Привет, я могу решить эту проблему с помощью следующих шагов: - 1) Перейдите в папку, где хранится ваш пользовательский класс Java, в моем случае это «Utilities.java» custom class.java

2) Теперь мы создадим файл .class для этого класса, ИСПОЛЬЗУЯ java TIBCO, а не нашу собственную локально установленную java jre, так как новый файл .class будет из TIBCO, для этого перейдите к своему TIBCO_HOME> tibcojre64>1.6.0> bin, Запустите CMD там и введите команду ниже: - command to create .class file

Это создаст файл Utilities.class в той же папке

3Теперь создайте пользовательскую функцию Java в Designer и обратитесь к этому файлу .class.

java custom function

4) Теперь загрузить-> Применить-> сохранить проект и перезапустить ваш дизайнер.Ошибка исчезнет

0 голосов
/ 09 февраля 2019

Как вы сказали, у вас есть несовместимая версия Java в вашем Tibco JRE и файл пользовательской функции .class.Неподдерживаемая ошибка major.minor версии 51.0 возникает при запуске файла класса, созданного с использованием Java 1.7 (основная версия 51.0), в версию JRE более низкой среды Tibco, например, JRE 6 или 5.

Основные числа:

Java SE 13 = 57,
Java SE 12 = 56,
Java SE 11 = 55,
Java SE 10 = 54,
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

(Источник: https://en.wikipedia.org/wiki/Java_class_file#General_layout)

Вы можете проверить версию JRE Tibco в Tibco Designer Справка-> Среда выполнения -> вкладка Java -> (java.runtime.version)

Вы можете проверить версию своей пользовательской функции с помощью

javap -verbose MyFunction.class| findstr "major"

как проверить версию jdk, использованную для компиляции файла .class

Таким образом, вам нужно либо изменить версию JRE Tibco, чтобы она была совместима с версией вашего класса, либо пересобрать свой класс пользовательских функций с версией, совместимой с вашей JRE Tibco.

Вы можете использовать опцию -target для указанияверсия Java в компиляторе Java при сборке вашей функции.

javac -target 1.6 MyFunction.java

Если у вас нет исходного кода функции, вы можете использовать декомпилятор, например JD http://jd.benow.ca/

Для измененияJRE в Тибко вынеобходимо перенастроить все .tra файлы на путь новой версии Java.Для этого вы можете использовать утилиту / tra // bin / traUpgradeManager:

traUpgradeManager -path C:/tibco/bw/5.7 -jre C:/tibco/jre/1.7
traUpgradeManager -path C:/tibco -jre C:/tibco/jre/1.7     

Подробнее см. https://support.tibco.com/s/article/Tibco-KnowledgeArticle-Article-33612.

Обратите внимание, что изменение JRE во всех средах Tibcoможет быть нетривиальным процессом.В вашем случае проще перекомпилировать пользовательскую функцию.

...