2016-06-21 124 views
0

我尝试使用Cassandra数据库在STS中创建一个项目Spring MVC。我是使用Cassandra DB进行Spring MVC的新功能。 我得到这个错误:Cassandra连接问题spring mvc

java.lang.ClassNotFoundException: Could not load requested class : data.cassandra.CassandraDriver 
    org.hibernate.service.classloading.internal.ClassLoaderServiceImpl$AggregatedClassLoader.findClass(ClassLoaderServiceImpl.java:296) 

我已经添加了卡桑德拉驱动的依赖,在我的POM

这是我出海 org.hibernate.ogm 休眠,OGM,卡桑德拉 的一部分5.0.0.Final

<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-cassandra --> 
    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-cassandra</artifactId> 
     <version>1.4.2.RELEASE</version> 
    </dependency> 

    <!-- https://mvnrepository.com/artifact/com.datastax.cassandra/cassandra-driver-core --> 
    <dependency> 
     <groupId>com.datastax.cassandra</groupId> 
     <artifactId>cassandra-driver-core</artifactId> 
     <version>3.0.2</version> 
    </dependency> 

这是我Hibernate.cfg.xml

<session-factory> 
    <property name="hibernate.connection.driver_class"> 
    cdata.cassandra.CassandraDriver 
    </property> 
    <property name="hibernate.connection.url"> 
    jdbc:cassandra:Database=libran;Port=9042;Server=127.0.0.1 
    </property> 
    <property name="hibernate.connection.username"> 
    root 
    </property> 
    <property name="hibernate.connection.password"></property> 
    <property name="hibernate.dialect"> 
    org.hibernate.dialect.SQLServerDialect 
    </property> 
    <property name="show_sql">true</property> 


    <mapping class="com.personal.myTrialApp.model.Link"></mapping> 

这是我的休眠UTIL

private static SessionFactory sessionFactory; 
private static ServiceRegistry serviceRegistry; 

static 
{ 
     try 
     { 
     Configuration configuration = new Configuration().configure(); 

     serviceRegistry = new ServiceRegistryBuilder() 
      .applySettings(configuration.getProperties()) 
       .buildServiceRegistry(); 

     sessionFactory = configuration 
      .buildSessionFactory(serviceRegistry); 
     } 
     catch (HibernateException he) 
     { 
     System.err.println("Error creating Session: " + he); 
     throw new ExceptionInInitializerError(he); 
     } 
    } 

    public static SessionFactory getSessionFactory() 
    { 
     return sessionFactory; 
    } 

,这是我的表link

@Table("link") 
public class Link 
{ 
    @PrimaryKey 
    private Integer linkID; 

    private String name; 

    private String address; 
// getter and setter 
} 

对象,这是我LinkDao

public class LinkDao 
{ 
    public static List<Link> getLink() 
    { 
     Session session = HibernateUtil.getSessionFactory().openSession(); 
     List<Link> links = session.createQuery("from Link").list(); 
     return links; 
    } 

} 

我想获得的linkID,姓名和地址从数据库数据,但我得到的错误。我希望我不重新发帖,任何人都可以帮助我?
谢谢

回答

1

在我的情况下,我不使用maven,但添加了需要连接和查询的jar。你可以看到罐子的图像。 您可以通过外部加入的罐子:

  • 右键单击该项目,然后单击添加外部JAR。
  • 导航到您的罐子并添加它们。

enter image description here

+0

让我先试试吧,队友 –

+0

我发现这个问题,它是由cassandra jdbc驱动的名字造成的,队友 –

+0

也谢谢你的帮忙和adivce,伙伴 –

1

我认为它没有在运行时得到特殊的Jar,所以去pom.xml, 你可以添加一个scope标签,这意味着你希望你的依赖在运行时默认是编译时。 org.springframework.data 弹簧数据卡桑德拉 1.4.2.RELEASE 运行

<!-- https://mvnrepository.com/artifact/com.datastax.cassandra/cassandra-driver-core --> 
<dependency> 
    <groupId>com.datastax.cassandra</groupId> 
    <artifactId>cassandra-driver-core</artifactId> 
    <version>3.0.2</version> 
    <scope>runtime</scope> 
</dependency> 

干净,并安装Maven,如果仍然给出了同样的问题,那么:

  • 点击该项目。
  • 选择属性。
  • 选择部署程序集。
  • 点击添加。
  • 选择Java Build Path Entries。
  • 单击Maven依赖关系。
  • 完成。
+0

让我试试吧第一,队友 –

+0

当我选择Java构建路径条目,也有Maven依赖任何选项,队友 –

+0

我发现有关我的情况的问题,它是关于卡桑德拉驱动程序类名称。应该是“java.lang.AbstractMethodError”但是非常感谢你的帮助,队友 –