2016-06-21 121 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」但是非常感謝你的幫助,隊友 –