WSO2 ESB:在dblookup中介中配置数据库连接失败
我使用IntegrationStudio创建了一个ESB项目,然后创建了一个代理服务并添加了一个dblookup中介。我已经将其配置为使用postgresql数据库。我的配置如下所述 连接类型为WSO2 ESB:在dblookup中介中配置数据库连接失败,wso2,wso2esb,Wso2,Wso2esb,我使用IntegrationStudio创建了一个ESB项目,然后创建了一个代理服务并添加了一个dblookup中介。我已经将其配置为使用postgresql数据库。我的配置如下所述 连接类型为DB\u连接 在数据库配置窗口中,我选择连接类型为postgresql 我选择了“从服务器获取”单选按钮,从组合列表中选择了“42.2.5”,并输入了连接参数 连接数据库驱动程序:com.postgres.jdbc.Driver(尝试使用org.postgresql.Driver) jdbc url连接:
DB\u连接
在数据库配置窗口中,我选择连接类型为postgresql
我选择了“从服务器获取”单选按钮,从组合列表中选择了“42.2.5”,并输入了连接参数
连接数据库驱动程序:com.postgres.jdbc.Driver
(尝试使用org.postgresql.Driver
)
jdbc url连接:jdbc:postgresql://localhost:5432/EDH_DATABASE
连接用户名:postgres
密码:已输入
测试连接工作正常。但是当通过IntegrationStudio运行代理时,会出现以下错误
注意:我将postgresql-42.2.5.jar复制到IntegrationStudio.app/Contents/Eclipse/runtime/microesb/lib
[2020-01-08 17:39:25,612] ERROR {org.apache.synapse.mediators.db.DBLookupMediator} - SQL Exception occurred while executing statement : select * from teacher; against DataSource : jdbc:postgresql://localhost:5432/EDH_DATABASE org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.postgres.jdbc.Driver'
at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1429)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at org.apache.synapse.mediators.db.DBLookupMediator.processStatement(DBLookupMediator.java:58)
at org.apache.synapse.mediators.db.AbstractDBMediator.mediate(AbstractDBMediator.java:243)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:109)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:71)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)
at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:224)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:367)
at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:412)
at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:181)
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.postgres.jdbc.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.eclipse.osgi.internal.framework.ContextFinder.loadClass(ContextFinder.java:139)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1420)
... 16 more
postgresql-42.2.5.jar没有路径“com.postgresql.jdbc.Driver”
。
因此尝试将“org.postgresql.Driver”作为连接数据库驱动程序字段值。但它仍然给出了同样的错误。尽管使用了“org.postgresql.Driver”,但使用了可配置字段,它仍然会给出相同的错误
[2020-01-08 17:39:25,612] ERROR {org.apache.synapse.mediators.db.DBLookupMediator} - SQL Exception occurred while executing statement : select * from teacher; against DataSource : jdbc:postgresql://localhost:5432/EDH_DATABASE org.apache.commons.dbcp.SQLNestedException:
Cannot load JDBC driver class 'com.postgres.jdbc.Driver'
at
org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1429)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at
org.apache.synapse.mediators.db.DBLookupMediator.processStatement(DBLookupMediator.java:58)
at org.apache.synapse.mediators.db.AbstractDBMediator.mediate(AbstractDBMediator.java:243)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:109)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:71)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)
at Org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:224)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:367)
at
org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:412)
at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:181)
at
org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.postgres.jdbc.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.eclipse.osgi.internal.framework.ContextFinder.loadClass(ContextFinder.java:139)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at
org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1420)
... 16 more
任何帮助都将不胜感激。似乎正确的驱动程序名称是“org.postgresql.Driver”。在错误日志中,尽管您已将驱动程序名称从“com.postgres.jdbc.Driver”更改为“org.postgresql.Driver”,但它似乎在寻找前一个。请确保您已通过单击停止按钮停止运行Micro Integrator,并通过单击“运行方式->在Micro Integrator上运行”再次运行代理。正确的驱动程序名称似乎是“org.postgresql.Driver”。在错误日志中,尽管您已将驱动程序名称从“com.postgres.jdbc.Driver”更改为“org.postgresql.Driver”,但它似乎在寻找前一个。请确保您已通过单击停止按钮停止运行Micro Integrator,并通过单击“运行方式->在Micro Integrator上运行”再次运行代理。我对驱动程序名称所做的更改未刷新。现在它正在工作。谢谢。我对驱动程序名称所做的更改没有刷新。现在它正在工作。谢谢