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

标签 java maven apache-camel apache-karaf

目前我正在从属性文件中读取端点。我想从数据库中获取它们。我已经编写了一个单独的 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>

现在导入所需的包:

导入包:oracle.jdbc、oracle.jdbc.driver、oracle.jdbc.pool

希望这对您有所帮助!

关于java - 如何使用 apache-camel 连接到 oracle 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37439915/

相关文章:

java - Weblogic Spring WS部署类强制转换异常

java - Munin jmx 配置

java - JComboBox 子菜单项

java - 如何在 JDBC 准备好的语句中转义文字问号 ('?' )

maven - 如何在maven中通过svn处理自己的jar

java - fabric8io docker-maven-plugin 组件和外部 Artifact

java - 如何在最终jar中仅包含一个依赖项目类

apache-camel - Camel 多次使用来自同一 URI 的 pollEnrich 返回 null body

java - 有没有办法在 JSP 加载时触发 Javascript 函数

json - Apache Camel xmljson 中的自定义 JSON 输出