Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用apache camel连接到oracle数据库?_Java_Maven_Apache Camel_Apache Karaf - Fatal编程技术网

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

Java 如何使用apache camel连接到oracle数据库?,java,maven,apache-camel,apache-karaf,Java,Maven,Apache Camel,Apache Karaf,目前,我正在从属性文件读取端点。我想从DB那里取。我已经编写了一个单独的java文件来连接DB,但是karaf抛出了一个异常 我也在pom.xml中添加了包 导出包:oracle.jdbc、oracle.jdbc.driver 进口包装:!javax.*!甲骨文** // Reading endpoints from property file String endPoint1 = propInfo.hashprops.get("endpoint1"); String e

目前,我正在从属性文件读取端点。我想从DB那里取。我已经编写了一个单独的java文件来连接DB,但是karaf抛出了一个异常

我也在pom.xml中添加了包

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

进口包装:!javax.*!甲骨文**

    // 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 "));
        }
    });
如果我试着从DB读它

   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未找到 由com.app.routes[246]找到


您必须将oracle数据库驱动程序打包到osgi包中:
install-s wrap:file:///LOCAL_PATH/ojdbc6.jar
安装-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>

com.oracle
ojdbc6
11.2.0.2.0
假如
现在导入所需的软件包:

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


希望这有帮助

嗨@Alexey谢谢你的快速回复,这很有帮助。我添加了依赖项并包装了oracle数据库驱动程序。现在我遇到了不同的错误,比如无法解决246.15:缺少需求[246.15]osgi.willing.package;(osgi.willing.package=oracle.ons)缺少要求[246.15]osgi.willing.package;(osgi.willing.package=oracle.security.pki)我需要添加额外的jar吗?或者我如何避免那些没有解压缩到META-INF.mf文件中的包呢?Hi@Siddesh B S,我只使用导入一个包:
oracle.jdbc.pool
,因为我使用class
oracle.jdbc.pool.OracleDataSource
作为数据源。您可以通过其他驼峰路径(jdbc、sql、jpa组件)从数据库下载所需的数据。Camel只需要数据源。但是,该路由必须在主路由开始之前下载数据。我认为您出现此错误是因为您的连接代码使用了该软件包。它们包含在这样的jar中:ons.jar、oraclepki.jar.Wow,我从pom.xml中删除了不必要的导入语句,这对我来说很有效,我只添加了
oracle.jdbc
,这足以建立连接。多谢各位@阿列克谢