我正在使用 TIBCO Designer 5.7。
在我的 Designer 代码的 Mapper 托盘中,我正在使用自定义 Java 函数“实用程序”,但是在使用它时它给我一个错误,说“自定义函数实用程序:不支持的 major.minor 版本 51.0”。在 XPath 部分它是说“没有这样的功能”。我认为这是因为 TIBCO 的 Java 与我的 Java JDK 不兼容。有人可以详细解释如何解决这个问题吗?
请参阅图像以了解错误。
我正在使用 TIBCO Designer 5.7。
在我的 Designer 代码的 Mapper 托盘中,我正在使用自定义 Java 函数“实用程序”,但是在使用它时它给我一个错误,说“自定义函数实用程序:不支持的 major.minor 版本 51.0”。在 XPath 部分它是说“没有这样的功能”。我认为这是因为 TIBCO 的 Java 与我的 Java JDK 不兼容。有人可以详细解释如何解决这个问题吗?
请参阅图像以了解错误。
正如您所说,您的 Tibco JRE 和自定义函数 .class 文件中有不兼容的 Java 版本。当您将使用 Java 1.7(主要版本 51.0)创建的类文件运行到较低的 Tibco 环境 JRE 版本(例如 JRE 6 或 5)中时,会出现 Unsupported major.minor version 51.0 错误。
主要数字是:
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 )
您可以在 Tibco Designer Help->Runtime Environment -> Java tab ->(java.runtime.version)中查看 Tibco JRE 版本
您可以通过以下方式检查自定义功能的版本
javap -verbose MyFunction.class| findstr "major"
因此,您需要更改您的 tibco JRE 版本以与您的类版本兼容,或者使用与您的 Tibco JRE 兼容的版本重新构建您的自定义函数类。
您可以在构建函数时使用 -target 选项在 java 编译器中指定 java 版本。
javac -target 1.6 MyFunction.java
如果您没有该函数的源代码,您可以使用 JD http://jd.benow.ca/之类的反编译器
要在 Tibco 中更改 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。
请注意,在所有 tibco 环境中更改 JRE 可能并非易事。在您的情况下,重新编译自定义函数更容易匹配。
嗨,我可以通过以下步骤解决它:- 1)转到存储自定义 java 类的文件夹,在我的例子中是“Utilities.java”
2) 现在我们将使用 TIBCO 的 java 为这个类创建一个 .class 文件,而不是我们自己本地安装的 java jre,因为新的 .class 文件将是 TIBCO 的,为此转到您的 TIBCO_HOME>tibcojre64>1.6.0> bin,在那里运行 CMD 并在下面给出命令:-
这将在同一文件夹中创建一个 Utilities.class 文件
3) 现在在 Designer 中创建一个自定义 Java 函数并引用这个 .class 文件。
4) 现在加载-> 应用-> 保存项目并重新启动您的设计器。错误将消失