グラスフィッシュ (4.1.1) で hibernate-ogm-neo4j (5.1.0.Alpha1) を実行しようとしています。アプリケーション サーバーを datastorprovider<property name="hibernate.ogm.datastore.provider" value="neo4j_embedded"/>
で起動すると、長いスタック トレースが表示され、次の例外が絶えず繰り返されます。
java.util.ServiceConfigurationError: org.neo4j.kernel.extension.KernelExtensionFactory: Provider org.neo4j.jmx.impl.JmxExtensionFactory not a subtype
java.util.ServiceConfigurationError: org.neo4j.kernel.extension.KernelExtensionFactory: Provider org.neo4j.index.lucene.LuceneKernelExtensionFactory not a subtype
java.util.ServiceConfigurationError: org.neo4j.kernel.extension.KernelExtensionFactory: Provider org.neo4j.kernel.api.impl.labelscan.LuceneLabelScanStoreExtension not a subtype
java.util.ServiceConfigurationError: org.neo4j.kernel.extension.KernelExtensionFactory: Provider org.neo4j.kernel.api.impl.schema.LuceneSchemaIndexProviderFactory not a subtype
java.util.ServiceConfigurationError: org.neo4j.kernel.extension.KernelExtensionFactory: Provider org.neo4j.ext.udc.impl.UdcKernelExtensionFactory not a subtype
<property name="hibernate.ogm.datastore.provider" value="neo4j_bolt"/>
例外を使用すると、
java.util.ServiceConfigurationError: org.neo4j.driver.internal.spi.Connector: Provider org.neo4j.driver.internal.connector.socket.SocketConnector not a subtype
Bolt モードで接続したいのですが、設定を誤ったのか、それとも hibernate-ogm または neo4j のバグなのかわかりません。
これは私の完全なpersistence.xmlです:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="ogm-neo4j" transaction-type="JTA">
<provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>
<properties>
<property name="hibernate.ogm.datastore.provider" value="neo4j_bolt"/>
<property name="hibernate.ogm.neo4j.database_path" value="C:\temp\vtc.neo4j" />
</properties>
</persistence-unit>
</persistence>
アップデート
エラーメッセージをもう少し詳しく調べました。実際にはJavaクラスでスローされ、のようなスーパークラスではないServiceLoader
と言っています。でももちろんそうですorg.neo4j.driver.internal.spi.Connector
org.neo4j.driver.internal.connector.socket.SocketConnector
public class SocketConnector implements Connector
また、 absolut class name と予想されるパスを含むMETA-INF.services
関連の説明もあります。neo4j-java-driver-1.0.4.jar
org.neo4j.driver.internal.connector.socket.SocketConnector
これは私をさらに混乱させます。この構成は自動的に行われないため、Glassfish に適用する必要がありますか?
更新 2
を使用すると問題は解消neo4j-java-driver-1.1.0-M6.jar
されます (pom で依存関係を宣言するだけで、hibernate-ogm-neo4j-5.1.0.Alpha1 にバンドルされている 1.0.4 の代わりに使用されます)。バージョン 1.0.x の何が問題なのかはまだわかりませんが、開発者に連絡して確認しました。