Java 如何使用apache camel连接到oracle数据库?
目前,我正在从属性文件读取端点。我想从DB那里取。我已经编写了一个单独的java文件来连接DB,但是karaf抛出了一个异常 我也在pom.xml中添加了包 导出包:oracle.jdbc、oracle.jdbc.driver 进口包装:!javax.*!甲骨文**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
// 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
,因为我使用classoracle.jdbc.pool.OracleDataSource
作为数据源。您可以通过其他驼峰路径(jdbc、sql、jpa组件)从数据库下载所需的数据。Camel只需要数据源。但是,该路由必须在主路由开始之前下载数据。我认为您出现此错误是因为您的连接代码使用了该软件包。它们包含在这样的jar中:ons.jar、oraclepki.jar.Wow,我从pom.xml中删除了不必要的导入语句,这对我来说很有效,我只添加了oracle.jdbc
,这足以建立连接。多谢各位@阿列克谢