我正在尝试在Websphere应用程序服务器中为neo4j创建数据源,但无法连接。关于此的任何指示都会有所帮助。
基于https://github.com/neo4j-contrib/neo4j-jdbc
中提供的指针添加属性这是日志中的错误:
java.lang.Exception:DSRA8101E:数据源类不能用作 一阶段:ClassCastException:org.neo4j.jdbc.bolt.BoltDriver 与javax.sql.ConnectionPoolDataSource不兼容[5/27/19 13:12:41:533 UTC] 00000111 SystemErr R at com.ibm.ws.rsadapter.AdapterUtil.createDataStoreAdapterException(AdapterUtil.java:441) [5/27/19 13:12:41:533 UTC] 00000111 SystemErr R在 com.ibm.ws.rsadapter.DSConfigHelper.getPooledConnection(DSConfigHelper.java:1340)
答案 0 :(得分:1)
根据其documentation,Neo4j不是兼容的JDBC驱动程序。
我们介绍了JDBC-API的这些方面, 明确提到的应该假定未实施
它也没有实现必需的javax.sql.DataSoruce接口,因此无法在服务器中进行配置。您将需要在应用程序代码中对其进行处理。
答案 1 :(得分:1)
为了向将来可能会发现此帖子的其他人澄清-是否可以直接配置为java.sql.Driver取决于是否使用WebSphere Application Server传统vs Liberty。
在传统的WebSphere Application Server中,可以采用更间接的方法,该方法涉及在驱动程序周围模拟ConnectionPoolDataSource类。在related stack overflow post下讨论。
在Liberty 18.0.0.3及更高版本中,可以直接配置仅指定URL的数据源,并在this knowledge center document下给出示例。
这是Liberty中的示例数据源配置,
<featureManager>
<feature>jdbc-4.2</feature>
<feature>jndi-1.0</feature>
... other features
</featureManager>
<dataSource jndiName="jdbc/neo4j" containerAuthDataRef="neo4jAuth">
<jdbcDriver libraryRef="neo4j"/>
<properties URL="jdbc:neo4j:bolt://localhost:7687"/>
</dataSource>
<authData id="neo4jAuth" user="neo4j" password="password"/>
<library>
<file name="C:/drivers/neo4j/neo4j-jdbc-driver-3.3.1.jar"/>
</library>