【发布时间】:2020-05-15 15:49:26
【问题描述】:
我需要使用 java.sql.DataSource 连接到 db2,我安装了 db2 驱动程序,在蓝图中设置了必要的 bean,一切都很好,直到驱动程序尝试建立连接。它失败并显示一个非常响亮的错误消息,即许可证文件 db2jcc_license_cisuz.jar 需要“在类路径上”
我应该把这个文件放在 karaf 的什么地方?我尝试将其安装为“包装”捆绑包并在具有蓝图的捆绑包中的许可证包上执行 Import-Package,但这似乎不起作用。应该作为片段部署到网桥??我应该重新包装所有东西吗?
在 karaf 部署这些“许可证”的“正确”方法是什么?在手册中找不到任何关于它的内容。
【问题讨论】:
-
Apache karaf 是 OSGi,也许我应该更多地强调这一点,所以它的工作方式有点不同......我的问题更多是关于在 karaf 中放置驱动程序的位置。我安装了驱动程序 db2jcc-2.10.52,它在 j2ee 环境中使用,另外 2 个许可证文件 db2jcc_license_cisuz.jar 和 db2jcc_license_cu.jar 都与驱动程序版本相同
-
IBM 似乎在 jdbc3.0 驱动程序版本 3.69.49 和 jdbc4.0 驱动程序版本 4.19.49 及更高版本中添加了对 jdbc 驱动程序的 OSGi 管理的支持,作为“OSGi 兼容的驱动程序 jar 捆绑” .如果您有旧版本,则需要升级它们。从这里ibm.com/support/pages/db2-jdbc-driver-versions-and-downloads 获取最新的 jdbc 4.0 驱动程序。您的 2.10.52 版本真的很古老,来自 Db2 v8.1fp14 。
-
驱动升级成功,谢谢,希望网站更易于使用,表格和许可证太多
-
附言。对于遇到这种情况的任何人,甚至不必费心尝试重新打包驱动程序并在以后的 jvm 上运行它,对 sun.io 中的一个类的依赖关系已从更高版本的 java 中删除。因此,如果您想使用较旧的驱动程序(无论出于何种原因),您需要将缺少的类组合在一起并为驱动程序提供它们
标签: java db2 osgi classpath apache-karaf