在Websphere应用程序服务器中为neo4j创建数据源时发生错误

时间:2019-05-28 07:19:57

标签: neo4j websphere datasource

我正在尝试在Websphere应用程序服务器中为neo4j创建数据源,但无法连接。关于此的任何指示都会有所帮助。

使用以下参数创建的JDBC驱动程序:

  • 名称:neo4j驱动程序
  • 类路径:neo4j jdbc jar / neo4j-jdbc-driver-3.3.1.jar的路径
  • 实现类名称:org.neo4j.jdbc.Driver

使用以下内容创建的数据源:

  • jndi名称:jdbc / neo4j

自定义属性:

  • auth:容器
  • 类型:javax.sql.DataSource
  • 用户名:neo4j
  • 密码:密码
  • url:jdbc:neo4j:bolt:// localhost:port
  • removeAbandonedOnBorrow:是
  • closeMethod:关闭

基于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)

2 个答案:

答案 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>