在Weblogic上使用Java Bolt Neo4j ogm的Neo4j服务器

在Weblogic上使用Java Bolt Neo4j ogm的Neo4j服务器,neo4j,neo4j-ogm,Neo4j,Neo4j Ogm,我从JavaEE连接到neo4j服务器时遇到问题 我使用: -本地主机上服务器模式下的neo4j 3.0.1 -Weblogic 12.1.3 -JEE 7 -neo4j ogm core 2.0.3 -neo4j ogm螺栓驱动器2.0.3 我的Maven依赖项: <dependency> <groupId>org.neo4j</groupId> <artifactId>neo4j-ogm-core</artifactId&

我从JavaEE连接到neo4j服务器时遇到问题

我使用:
-本地主机上服务器模式下的neo4j 3.0.1
-Weblogic 12.1.3
-JEE 7
-neo4j ogm core 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>
我使用EJB单例来定义会话工厂:

它位于“com.toto.poc.ejb.data.access”包中

我有一个EJB来定义想要调用的业务方法:

我不知道它为什么要查看类路径中的zip…

谢谢你的帮助

我终于可以解决我的问题了,我浏览了一些论坛,发现有人在JBoss上有类似的问题。
因此,我设法将此解决方案转换为Weblogic

首先,您需要创建自己的资源解析程序来提供处理“zip”的方法。
覆盖ResourceResolver并实现如下解析方法:

public class Neo4jResourceResolver implements ResourceResolver {

    @Override
    public File resolve(URL resource) throws Exception {

        switch (resource.getProtocol()) {
            case "file":
                return new File(resource.toURI());
            case "jar":
            case "zip":
                String jarPath = resource.getPath().substring(0, resource.getPath().indexOf("!"));
                return new File(jarPath);
            default:
                return null;
        }
    }
}
然后在路径“src/main/resources/META-INF/services”中创建一个名为“org.neo4j.ogm.classloader.resourcesolver”的文件
此文件仅包含一行,即自定义ResourceResolver类的路径:

com.toto.poc.core.access.ucmdb.Neo4jResourceResolver
这是神奇的,很有效


Neo4j现在将探索jar归档,找到您的节点并将其映射到您的图表:)

我终于可以解决我的问题了,我浏览了一些论坛,发现有人在JBoss上有类似的问题。
因此,我设法将此解决方案转换为Weblogic

首先,您需要创建自己的资源解析程序来提供处理“zip”的方法。
覆盖ResourceResolver并实现如下解析方法:

public class Neo4jResourceResolver implements ResourceResolver {

    @Override
    public File resolve(URL resource) throws Exception {

        switch (resource.getProtocol()) {
            case "file":
                return new File(resource.toURI());
            case "jar":
            case "zip":
                String jarPath = resource.getPath().substring(0, resource.getPath().indexOf("!"));
                return new File(jarPath);
            default:
                return null;
        }
    }
}
然后在路径“src/main/resources/META-INF/services”中创建一个名为“org.neo4j.ogm.classloader.resourcesolver”的文件
此文件仅包含一行,即自定义ResourceResolver类的路径:

com.toto.poc.core.access.ucmdb.Neo4jResourceResolver
这是神奇的,很有效

Neo4j现在将探索jar归档,找到您的节点并将其映射到图形:)

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
public class Neo4jResourceResolver implements ResourceResolver {

    @Override
    public File resolve(URL resource) throws Exception {

        switch (resource.getProtocol()) {
            case "file":
                return new File(resource.toURI());
            case "jar":
            case "zip":
                String jarPath = resource.getPath().substring(0, resource.getPath().indexOf("!"));
                return new File(jarPath);
            default:
                return null;
        }
    }
}
com.toto.poc.core.access.ucmdb.Neo4jResourceResolver