如何使用 apache-camel 连接到 oracle 数据库?

How to connect to oracle database using apache-camel?

目前我正在从 属性 文件中读取端点。我想从数据库中获取它们。我已经编写了一个单独的 java 文件来连接到数据库,但是 karaf 抛出异常。

我也在 pom.xml 中添加了软件包

导出包:oracle.jdbc、oracle.jdbc.driver

导入包:!javax.*, !oracle.**

    // Reading endpoints from property file
    String endPoint1 = propInfo.hashprops.get("endpoint1");
    String endPoint2 = propInfo.hashprops.get("endpoint2");
    from(endPoint1)
    .doTry()
    .setHeader(userid, constant("abcd"))
    .setHeader(password, constant("abcd"))
    .to(endPoint2)
    .doCatch(ConnectException.class)
    .process(new Processor(){
        public void process(Exchange ex) throws Exception {
            ex.getIn().setBody("Exception "));
        }
    })
    .doCatch(Exception.class)
    .process(new Processor(){
        public void process(Exchange ex) throws Exception {
            ex.getIn().setBody("Exception "));
        }
    });

如果我尝试从数据库读取它

   DbConnect obj = new DbConnect();
    String endPoint1 = obj.getEndpoint("endpoint1");
    String endPoint2 = obj.getEndpoint("endpoint2");
    from(endPoint1)
    .doTry()
    .setHeader(userid, constant("abcd"))
    .setHeader(password, constant("abcd"))
    .to(endPoint2)
    .doCatch(ConnectException.class)
    .process(new Processor(){
        public void process(Exchange ex) throws Exception {
            ex.getIn().setBody("Exception "));
        }
    })
    .doCatch(Exception.class)
    .process(new Processor(){
        public void process(Exchange ex) throws Exception {
            ex.getIn().setBody("Exception "));
        }
    });

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver not found by com.app.routes [246]

您必须将 oracle 数据库驱动程序包装到 osgi 包中:
install -s wrap:file:///LOCAL_PATH/ojdbc6.jarinstall -s wrap:mvn:com.oracle/ojdbc6/11.2.0.2.0

通过控制台检查打包的驱动程序包是否已加载并启动。

将 oracle 依赖项添加到具有数据库连接的包中:

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.2.0</version>
        <scope>provided</scope>
    </dependency>

现在导入所需的包:

Import-Package : oracle.jdbc, oracle.jdbc.driver, oracle.jdbc.pool

希望对您有所帮助!