【问题标题】:Importing external jar in Talend在 Talend 中导入外部 jar
【发布时间】:2020-12-17 19:32:43
【问题描述】:

谁能帮我解决这个问题。我已经成功安装了 Talend studio (Talend Data Fabric 7.3.1)。但是当我尝试使用 tDBInput 组件连接到 Azure SQL 数据库时,它向我显示了一个错误,即缺少 jar "mssql-jdbc.jar"。由于下载按钮被禁用。

请看下面显示下载按钮被禁用的快照

screenshot showing download buttion in component is disabled

我手动下载了 jar“mssql-jdbc-8.4.0.jre11”并将其指向组件。当我执行我的 Talend 作业时,它显示以下错误

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/microsoft/sqlserver/jdbc/SQLServerDriver has been compiled by a more recent version of the Java Runtime (class file version 59.0), this version of the Java Runtime only recognizes class file versions up to 55.0
      at java.base/java.lang.ClassLoader.defineClass1(Native Method)
      at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
      at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
      at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
      at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
      at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
      at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
      at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
      at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
      at java.base/java.lang.Class.forName0(Native Method)
      at java.base/java.lang.Class.forName(Class.java:315)
      at psc_co_biopharm.test_job_0_1.Test_job.tDBInput_2Process(Test_job.java:727)
      at psc_co_biopharm.test_job_0_1.Test_job.runJobInTOS(Test_job.java:1458)
      at psc_co_biopharm.test_job_0_1.Test_job.main(Test_job.java:1240)

所以,我尝试了一种解决方法。使用 tlibraryload 组件导入 jar “mssql-jdbc-8.2.1jre11”。它工作正常,我能够查询 Azure SQL 数据库。

但是使用 tlibraryload 不是最好的做法,有人可以告诉我如何将这个版本的 jar "mssql-jdbc-8.2.1jre11" 直接指向组件。

我尝试通过 windows->show_view->Modules 加载这个 jre。但它显示“这个模块已经安装了 maven URI”

请帮助我并建议如何将此版本的 jar "mssql-jdbc-8.2.1jre11" 直接指向组件。

【问题讨论】:

    标签: java talend


    【解决方案1】:

    我发布了此问题的答案,因此这将对将来的某人有所帮助。我犯的错误是,首先我应该下载“mssql-jdbc-8.2.1jre11”jar并将其指向组件,而不是下载“mssql-jdbc-9.1jre”并指向零件。这是一个可怕的错误。

    确保您正在下载与您的 jdk 兼容的正确版本的 jar。对我来说,jdk 版本是 11,所以我应该首先下载“mssql-jdbc-8.2.1jre11”jar。

    由于我已经下载了不同版本的 jar 并首先指向了该组件,所以它不接受我现在指向的正确版本的 jar“mssql-jdbc-8.2.1jre11”。我们应该从以下文件夹中删除旧 jar,并且我们应该尝试导入正确版本的 jar。它会起作用的。对我来说效果很好。

    我们应该从系统中的以下文件夹中删除旧 jar

    Windows(c)->Talend_Studio->Configuration->.m2->repository->org->Talend->Libraries

    在这个库文件夹下,对于我来说,我应该找到文件夹 MySQL 目录并将其删除。

    然后我尝试通过 windows->show_view->Modules 导入 jar,它起作用了。 :-)

    希望这对某人有用。

    【讨论】:

      【解决方案2】:

      请确保,

      1. java JDK 要求和版本与 Talend Studio 的兼容性并在 cmd 中查看 java -version 版本
      2. 由于其 Maven 存储库,因此在构建工作区并清理项目时会下载所需的支持库(存档 Jar)
      3. java.lang.UnsupportedClassVersionError: com/microsoft/sqlserver/jdbc/SQLServerDriver 异常版本不匹配 mssql-jdbc.jar
      4. 检查已安装的 maven 存储库:Windows > Preferences > Maven > User Settings > Local Repository 以及是否在您的系统中安装了 maven \Maven\apache-maven-3.0.3\conf\setting.xml 目录路径所有库在这里下载
      5. 从 .m2->repository->org->Talend->Libraries -> mssql-jdbc(6.0.0) 中删除/移除 jar
      6. 清理工作区,确保删除旧版本的存档文件
      7. 如果系统中配置了 maven URI,则构建工作区,它将自动下载当前支持 lib 的版本或
      8. 手动导入存档文件 windows->show_view->Modules
      9. 重启工作室

      希望这是有用的。 !

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-24
        • 2020-06-29
        • 2015-08-07
        • 2014-09-03
        • 2013-05-22
        相关资源
        最近更新 更多