【问题标题】:Red Hat JBoss Fuse 6.2.1: Osgi Missing Requirement: Oracle JDBC DriverRed Hat JBoss Fuse 6.2.1:Osgi 缺少要求:Oracle JDBC 驱动程序
【发布时间】:2016-01-09 13:49:18
【问题描述】:

这是我在使用 Jboss fuse 时遇到的问题,其中一个依赖项(Oracle JDBC JAR)没有作为 OSGI 包找到。 源代码在本地运行时工作正常,但在部署到 Karaf 容器时出错。 该问题和相关源代码的详细说明位于: https://developer.jboss.org/message/948643

欢迎对此提出任何建议。

感谢您的耐心等待。 普拉巴尔

【问题讨论】:

  • 请在问题中包含问题的详细信息,而不是在外部链接中。这是 StackOverflow 政策,因为外部链接可能会失效,问题及其答案将不再有用。
  • 我正在尝试部署一个使用 Oracle JDBC 驱动程序的 Fuse 项目。虽然我可以在 Jboss 开发人员工作室中成功运行源代码,但我无法部署到 Karaf 容器中。每当我尝试这样做时,我都会收到如下错误: onFramework [307]: Unable to resolve 307.0: missing requirements [307.0] osgi.wiring.package; (osgi.wiring.package=oracle.jdbc)
  • 这是我试图解决的问题: - 将其部署为 FAB,但出现以下错误:osgi:install fab:mvn:au.com.nbnco/ASN_CommonFramework/1.0.0Caused by: java .net.MalformedURLException: 未知协议:在 java.net.URL.(URL.java:620)[:1.8.0_66] 的工厂
  • - 将 POM 文件(参考第 358-359 行)修改为 Oracle 驱动程序 jar 作为嵌入式依赖项。将以下内容从 * 更改为 !oracle.jdbc,*ojdbc6 但是这会引发\target\classes\META-INF\MANIFEST.MF Import-Package 中的一组新依赖项:com.sun.security.auth.module,javax.crypto,javax.crypto.s pec,javax.management,javax.naming, javax.naming.directory,javax.naming.s pi,javax.net,javax.net.ssl,javax.resource,...等等。

标签: jboss osgi apache-karaf osgi-bundle


【解决方案1】:

您尝试在 Fuse 服务器上部署的 Oracle JAR 文件不是 Maven 包。
因此,您需要使用以下命令包装并安装该库:

install -s wrap:mvn:com.oracle/ojdbc6/<version>

&lt;version&gt; 指的是 jar 文件的版本号。希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 2017-05-12
    • 1970-01-01
    • 2012-12-27
    • 2014-02-22
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多