首页 > 解决方案 > 使用 Oracle ojdbc 的 Servicemix

问题描述

我想在项目中直接使用 jdbc 进行服务组合。我试图安装 ojdbc7.jar

捆绑:安装包装:文件:F:/tmp/ojdbc7.jar

开始后我得到 264 | 活跃 | 80 | 0 | wrap_file_F__tmp_ojd bc7.jar

我的代码是:

try (final Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521/orcl2", "bla", "bla")) {

            String sql = "Insert INTO message values('" + fall.getMessageid() + "','" + fall.getXml() + "')";
            final Statement statement = con.createStatement();
            statement.executeUpdate(sql);
        } catch (Exception e) {
            String msg = "Error while trying to persist Fall with msgid " + fall.getMessageid();
            log.error(msg, e);
            throw new AdvisException(msg, e);
        }

我得到 java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@localhost:1521/orcl2

我是否必须添加一些额外的配置或其他东西?

编辑:

我想我必须以某种方式在 MANIFEST.MF 中导入已安装的捆绑包

问题1:

我已经声明了依赖

<dependency>
        <groupId>com.oracle</groupId>
        <artifactId>oracle-jdbc</artifactId>
        <version>6.0.0</version>
    </dependency>

并使用

<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.5.3</version>
<extensions>true</extensions>
<configuration>
    <instructions>
        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
        <Import-Package>*</Import-Package>
        <Private-Package>de.iteos</Private-Package>

    </instructions>
</configuration>

但 ojdbc6 没有显示导入:

Import-Package: javax.jws,javax.xml.bind,javax.xml.bind.annotation,javax
 .xml.bind.annotation.adapters,javax.xml.datatype,javax.xml.namespace,ja
 vax.xml.parsers,javax.xml.transform,javax.xml.transform.stream,javax.xm
 l.ws,javax.xml.xpath,org.apache.activemq,org.apache.activemq.camel.comp
 onent,org.apache.camel;version="[2.16,3)",org.slf4j;version="[1.7,2)",o
 rg.w3c.dom,org.xml.sax

为什么?

问题2:安装后的bundle名称可能不兼容我该如何更改?

标签: oracleapache-servicemix

解决方案


我通过将 ojdbc 驱动程序复制到 apache-servicemix-7.0.1\lib\ext 解决了这个问题


推荐阅读