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