WSO2 ESB: сбой при настройке соединения db в посреднике dblookup - PullRequest
0 голосов
/ 08 января 2020

Используя IntegrationStudio, я создал проект ESB. Затем я создал прокси-сервис и добавил посредник dblookup. Я настроил его на использование postgresql БД. Я настроил, как указано ниже.

тип_соединения как DB_CONNECTION

В окне конфигурации базы данных я выбираю тип подключения как postgresql.

Я выбрал «получить с сервера» переключатель и выберите «42.2.5» из списка и введите параметры подключения.

Соединение DB Driver: com.postgres.jdbc.Driver (пробовал с org.postgresql.Driver) jdb c URL-соединение: jdbc:postgresql://localhost:5432/EDH_DATABASE соединение имя пользователя: postgres пароль: entered

Тестовое соединение работает нормально. Но при запуске прокси через IntegrationStudio выдается следующая ошибка.

ПРИМЕЧАНИЕ. 1020 *

[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" в качестве значения поля Драйвер БД подключения. Но все равно это дает ту же ошибку. INSPITE OF USING «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

Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 09 января 2020

Кажется, правильное имя драйвера - " org. postgresql .Driver ". В ваших журналах ошибок, даже если вы изменили имя драйвера с " com. postgres .jdb c .Driver " на " org. postgresql .Driver " , кажется, ищет первый. Убедитесь, что вы остановили работающий Micro Integrator, нажав кнопку «Стоп», и снова запустите прокси, нажав «Запуск от имени -> Запуск на Micro Integrator».

...