从Java EE连接到neo4j服务器时出现问题。Neo4j服务器在Weblogic上使用Java Bolt neo4j-ogm
我用:
- Neo4j的3.0.1在本地主机上
服务器模式 - 的Weblogic 12.1.3
- JEE 7
- 的Neo4j-OGM核心2.0.3
- 的Neo4j-OGM螺栓驱动器2.0.3
我的Maven依赖:
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-ogm-core</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-ogm-bolt-driver</artifactId>
<version>2.0.3</version>
</dependency>
我的资源ogm.properties/META-INF:
#Driver, required
driver=org.neo4j.ogm.drivers.bolt.driver.BoltDriver
#URI of the Neo4j database, required. If no port is specified, the default port 7687 is used. Otherwise, a port can be specified with bolt://neo4j:[email protected]:1234
URI=bolt://neo4j:[email protected]
#Connection pool size (the maximum number of sessions per URL), optional, defaults to 50
connection.pool.size=150
#Encryption level (TLS), optional, defaults to REQUIRED. Valid values are NONE,REQUIRED
encryption.level=NONE
#Trust strategy, optional, not used if not specified. Valid values are TRUST_ON_FIRST_USE,TRUST_SIGNED_CERTIFICATES
trust.strategy=TRUST_ON_FIRST_USE
我使用EJB辛格尔顿定义会话工厂:
@Singleton
public class Neo4jSessionFactory {
private SessionFactory sessionFactory;
@PostConstruct
public void init() {
sessionFactory = new SessionFactory("com.toto.poc.ejb.data.access");
}
/**
* Get neo4j session
* @return the session
*/
public Session getNeo4jSession() {
return sessionFactory.openSession();
}
}
它是在“COM .toto.poc.ejb.data.access“包。
我有一个EJB中要定义的业务方法调用:
@Stateless
public class TopologyBusiness {
private @EJB Neo4jSessionFactory neo4jSessionFactory;
public Iterable<Map<String, Object>> getApplication(String irt) {
String query = "MATCH (a:Application) WHERE a.irt = '" + irt + "' RETURN a";
Session session = neo4jSessionFactory.getNeo4jSession();
return session.query(query, Collections.emptyMap());
}
}
但是,当我的客户呼叫TopologyBusiness,Neo4jSessionFactory的Init(PostConstruct)方法被调用,并且发生一个错误:
com.oracle.pitchfork.interfaces.LifecycleCallbackException: Failure to invoke public void com.toto.poc.ejb.data.access.Neo4jSessionFactory.init() on bean class class com.toto.poc.ejb.data.access.Neo4jSessionFactory_wi88u8_Impl with args: null
at com.oracle.pitchfork.inject.Jsr250Metadata.invokeLifecycleMethod(Jsr250Metadata.java:379)
at com.oracle.pitchfork.inject.Jsr250Metadata.invokeLifecycleMethods(Jsr250Metadata.java:352)
at com.oracle.pitchfork.intercept.InterceptionMetadata.invokeLifecycleMethods(InterceptionMetadata.java:399)
at weblogic.ejb.container.injection.EjbComponentCreatorImpl.invokePostConstruct(EjbComponentCreatorImpl.java:55)
at weblogic.ejb.container.manager.SingletonSessionManager.constructAndInitBean(SingletonSessionManager.java:330)
Truncated. see log file for complete stacktrace
Caused By: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.oracle.pitchfork.inject.Jsr250Metadata.invokeLifecycleMethod(Jsr250Metadata.java:377)
Truncated. see log file for complete stacktrace
Caused By: java.lang.RuntimeException: org.neo4j.ogm.exception.ServiceNotFoundException: Resource: zip:C:/oracle/wls/12.1.3/user_projects/domains/CMDB/servers/LocalServer/tmp/_WL_user/poc-cdb-ear_ear/a8qjfi/poc-cdb-ejb-1.0-SNAPSHOT.jar!/com/toto.poc/ejb/data/access
at org.neo4j.ogm.ClassUtils.getUniqueClasspathElements(ClassUtils.java:178)
at org.neo4j.ogm.scanner.ClassPathScanner.getUniqueClasspathElements(ClassPathScanner.java:158)
at org.neo4j.ogm.scanner.ClassPathScanner.scan(ClassPathScanner.java:130)
at org.neo4j.ogm.metadata.DomainInfo.load(DomainInfo.java:316)
at org.neo4j.ogm.metadata.DomainInfo.<init>(DomainInfo.java:67)
Truncated. see log file for complete stacktrace
Caused By: org.neo4j.ogm.exception.ServiceNotFoundException: Resource: zip:C:/oracle/wls/12.1.3/user_projects/domains/CMDB/servers/LocalServer/tmp/_WL_user/poc-cdb-ear_ear/a8qjfi/poc-cdb-ejb-1.0-SNAPSHOT.jar!/com/toto.poc/ejb/data/access
at org.neo4j.ogm.service.ResourceService.resolve(ResourceService.java:53)
at org.neo4j.ogm.ClassUtils.getUniqueClasspathElements(ClassUtils.java:175)
at org.neo4j.ogm.scanner.ClassPathScanner.getUniqueClasspathElements(ClassPathScanner.java:158)
at org.neo4j.ogm.scanner.ClassPathScanner.scan(ClassPathScanner.java:130)
at org.neo4j.ogm.metadata.DomainInfo.load(DomainInfo.java:316)
Truncated. see log file for complete stacktrace
根本原因似乎是:
Caused By: org.neo4j.ogm.exception.ServiceNotFoundException: Resource: zip:C:/oracle/wls/12.1.3/user_projects/domains/CMDB/servers/LocalServer/tmp/_WL_user/poc-cdb-ear_ear/a8qjfi/poc-cdb-ejb-1.0-SNAPSHOT.jar!/com/toto.poc/ejb/data/access
我不知道为什么要在类路径中查看一个zip文件...
感谢您的帮助!