2016-08-16 6 views
-2

Я использую Neo4j-сообщества-2.3.0-M02 и мой Neo4j драйвер JDBC 3.0, когда я создаю подключение к базе я получил исключение java.lang.ClassNotFoundException: org.neo4j.jdbc.DriverClassNotFoundException при использовании Neo4j драйвер JDBC

Вот метод, который я используется соединение create db.

private void createDbConnection(){ 
    System.out.println("Creating neo4j db connection."); 
    try { 
     Class.forName("org.neo4j.jdbc.Driver"); 
     connection = (Connection) 
       DriverManager.getConnection("jdbc:neo4j:http:/<<ip_address>>:7474/",userName,passWord); 
     System.out.println("neo4jConnection:"+connection.toString()); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    } 
} 

Есть ли какие-либо несоответствия между вышеупомянутыми библиотеками, которые я использовал, или есть какие-либо ошибки в моем методе?

В соответствии с просьбой здесь полно StackTrace,

java.lang.ClassNotFoundException: org.neo4j.jdbc.Driver 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1858) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1709) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:195) 
at com.springapp.utils.Neo4jUtil.createDbConnection(Neo4jUtil.java:38) 
at com.springapp.utils.Neo4jUtil.<init>(Neo4jUtil.java:29) 
at com.springapp.utils.Neo4jUtil.<init>(Neo4jUtil.java:15) 
at com.springapp.utils.Neo4jUtil$Neo4jHolder.<clinit>(Neo4jUtil.java:60) 
at com.springapp.utils.Neo4jUtil.getInstance(Neo4jUtil.java:64) 
at com.springapp.controllers.CdrProcessController.getInstance(CdrProcessController.java:208) 
at com.springapp.controllers.CdrProcessController.cdrRelationClear(CdrProcessController.java:166) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:175) 
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:446) 
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:434) 
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943) 
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) 
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) 
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) 
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Thread.java:745) 

Вот мой pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.springapp</groupId> 
<artifactId>Adaptor</artifactId> 
<packaging>war</packaging> 
<version>1.0-SNAPSHOT</version> 
<name>Adaptor</name> 

<properties> 
    <spring.version>4.1.1.RELEASE</spring.version> 
</properties> 

<repositories> 
    <repository> 
     <id>neo4j-public</id> 
     <url>http://m2.neo4j.org/content/groups/everything</url> 
    </repository> 
</repositories> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet.jsp</groupId> 
     <artifactId>jsp-api</artifactId> 
     <version>2.1</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-test</artifactId> 
     <version>${spring.version}</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.11</version> 
     <scope>test</scope> 
    </dependency> 

    <!--Jackson libs--> 
    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-core-lgpl</artifactId> 
     <version>1.9.5</version> 
    </dependency> 
    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-mapper-lgpl</artifactId> 
     <version>1.9.5</version> 
    </dependency> 
    <!--Redis dependencies--> 
    <!--Redis 2.7.2 and spring 1.5.1 are not compatible with each other--> 
    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-redis</artifactId> 
     <version>1.6.2.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>redis.clients</groupId> 
     <artifactId>jedis</artifactId> 
     <!--<version>2.6.2</version>--> 
     <version>2.8.0</version> 
    </dependency> 
    <!----> 
    <!-- New redis client for threading--> 
    <dependency> 
     <groupId>biz.paluch.redis</groupId> 
     <artifactId>lettuce</artifactId> 
     <version>3.4.2.Final</version> 
    </dependency> 
    <!-- --> 
    <!--MySQL dependencies--> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-jdbc</artifactId> 
     <version>4.2.0.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.9</version> 
    </dependency> 
    <!--Access xml data--> 
    <dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi</artifactId> 
     <version>3.12</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi-ooxml</artifactId> 
     <version>3.12</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.xmlbeans</groupId> 
     <artifactId>xmlbeans</artifactId> 
     <version>2.4.0</version> 
    </dependency> 
    <dependency> 
     <groupId>stax</groupId> 
     <artifactId>stax-api</artifactId> 
     <version>1.0.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-io</artifactId> 
     <version>1.3.2</version> 
    </dependency> 
    <!----> 

    <!--Read Json--> 
    <dependency> 
     <groupId>com.googlecode.json-simple</groupId> 
     <artifactId>json-simple</artifactId> 
     <version>1.1</version> 
    </dependency> 
    <!----> 
    <!-- Apache htttp client--> 
    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient</artifactId> 
     <version>4.5.1</version> 
    </dependency> 
    <!-- --> 
    <!-- Json for htttp client--> 
    <dependency> 
     <groupId>org.json</groupId> 
     <artifactId>json</artifactId> 
     <version>20151123</version> 
    </dependency> 
    <!-- --> 
    <!-- Read csv files--> 
    <dependency> 
     <groupId>com.opencsv</groupId> 
     <artifactId>opencsv</artifactId> 
     <version>3.4</version> 
    </dependency> 
    <!-- --> 

    <!-- Neo4j Jdbc --> 
    <dependency> 
     <groupId>org.neo4j</groupId> 
     <artifactId>neo4j-jdbc</artifactId> 
     <version>3.0</version> 
    </dependency> 
    <!-- For file and in-memory support, add these two as well --> 
    <dependency> 
     <groupId>org.neo4j</groupId> 
     <artifactId>neo4j</artifactId> 
     <version>2.3.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.neo4j</groupId> 
     <artifactId>neo4j-kernel</artifactId> 
     <version>2.3.2</version> 
     <type>test-jar</type> 
    </dependency> 
    <dependency> 
     <groupId>org.neo4j</groupId> 
     <artifactId>neo4j-io</artifactId> 
     <version>2.3.2</version> 
     <type>test-jar</type> 
    </dependency> 
</dependencies> 

<build> 
    <finalName>Adaptor</finalName> 
    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <configuration> 
       <includes> 
        <include>**/*Tests.java</include> 
       </includes> 
      </configuration> 
     </plugin> 
    </plugins> 
    <resources> 
     <resource> 
      <directory>src/main/webapp/WEB-INF/config</directory> 
      <includes> 
       <include>**/*.properties</include> 
      </includes> 
     </resource> 
    </resources> 
</build> 

+0

Похоже, что в jar, который содержит класс 'org.neo4j.jdbc.Driver', нет в пути к классам – Jens

+0

@Jens, я так не думаю, я добавляю библиотеки, использующие maven в файле pom.xml. Он правильно показывает все библиотеки, которые я использовал. – Hasitha

+1

Ваш код не похож на пример здесь: https://github.com/neo4j-contrib/neo4j-jdbc. Я предполагаю, что нет класса org.neo4j.jdbc.Driver. Откройте JAR и посмотрите. – duffymo

ответ

0

Я удалил Class.forName("org.neo4j.jdbc.Driver"); линию и добавлены следующие две строки до создания соединения.

Driver driver = new org.neo4j.jdbc.Driver(); 
DriverManager.registerDriver(driver); 

Я сделал это после ссылки this учебник. Второй подход успешно разрешил мою проблему.

Смежные вопросы