Не удается найти действительный драйвер JDBC (класс реализации) для Hana в Websphere Liberty - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь подключить Websphere Liberty v16.0.0.4 к источнику данных HANA, но не могу найти правильный драйвер.
В настоящее время в моем server.xml У меня естьследующее:

<xml version="1.0" encoding="UTF-8">
<server description="o01-cls-pega-static-prpc02-appsrv03">

    <!-- Enable features -->
    <featureManager>
        <feature>webProfile-7.0</feature>
        <feature>localConnector-1.0</feature>
        <feature>jdbc-4.1</feature>
        <feature>ssl-1.0</feature>
        <feature>servlet-3.1</feature>
        <feature>ejb-3.2</feature>
        <feature>ejbLite-3.2</feature>
        <feature>ejbRemote-3.2</feature>
        <feature>jndi-1.0</feature>
        <feature>jms-2.0</feature>
        <feature>jaxws-2.2</feature>
        <feature>jaxb-2.2</feature>
        <feature>restConnector-2.0</feature>
        <feature>wmqJmsClient-2.0</feature>
        <feature>jmsMdb-3.2</feature>
    </featureManager>
    <httpEndpoint id="defaultHttpEndpoint"
                  host="localhost"
                  httpPort="28740"
                  httpsPort="28741" />

    <!-- JDBC Hana Driver -->
    <jdbcDriver id="myHanaDriver" javax.sql.DataSource="com.ibm.ws.jdbc.jdbcDriver">
        <library>
            <fileset dir="${wlp.user.dir}/shared/resources/hana" includes="*.jar" id="HANALib"/>
        </library>
    </jdbcDriver>
    <!-- HANA JDBC Databases -->
    <dataSource
              type="javax.sql.DataSource"
              containerAuthDataRef="PegaDBUserSAPHANA"
              id="hanaDataSource"
              jdbcDriverRef="myHanaDriver"
              jndiName="jdbc/hanaDataSource">
    <properties serverName="localhost" port="35315"/>
    </dataSource>
    <applicationManager autoExpand="true"/>
</server>

Это ошибка, которую я получаю:

[5/6/19 14:24:24:735 CEST] 00000038 LogService-156-com.ibm.ws.jdbc 
E CWWKE0701E: FrameworkEvent ERROR Bundle:com.ibm.ws.jdbc(id=156) org.osgi.framework.ServiceException: 
Exception in com.ibm.ws.resource.internal.ResourceFactoryTrackerData$1.getService()
Caused by: java.lang.RuntimeException: java.sql.SQLNonTransientException: 
DSRA4000E: A valid JDBC driver implementation class was not found for the jdbcDriver jdbcDriver[myHanaDriver] using the library com.ibm.ws.classloading.sharedlibrary_587. [/opt/wlp/usr/shared/resources/hana/ngdbc.jar]
Caused by: java.sql.SQLNonTransientException: 
DSRA4000E: A valid JDBC driver implementation class was not found for the jdbcDriver jdbcDriver[myHanaDriver] using the library com.ibm.ws.classloading.sharedlibrary_587. [/opt/wlp/usr/shared/resources/hana/ngdbc.jar]
Caused by: java.lang.ClassNotFoundException: com.ibm.ws.jdbc.jdbcDriver

Кто-нибудь, кто может мне помочь, получить правильный класс реализации, который мне нужен?

Ответы [ 2 ]

0 голосов
/ 07 мая 2019

У меня теперь работает, я изменил это: javax.sql.DataSource = "com.ibm.ws.jdbc.jdbcDriver" в javax.sql.ConnectionPoolDataSource = "com.sap.db.jdbcext.ConnectionPoolDataSourceSAP"

И введите type = "javax.sql.DataSource" в этот тип = "javax.sql.ConnectionPoolDataSource".

0 голосов
/ 06 мая 2019

Вы правы, что javax.sql.DataSource="com.ibm.ws.jdbc.jdbcDriver" неправильно настроен. Это должно либо указывать на реализацию драйвера JDBC javax.sql.DataSource, например, javax.sql.DataSource="com.sap.dbtech.jdbcext.DataSourceSapDB" или, для многих драйверов JDBC, более новые версии Liberty (но не более старый уровень 16.0.0.4, о котором задается этот вопрос) часто могут вывести правильный класс реализации, если вы вообще пропустите этот атрибут конфигурации.

...