【问题标题】:Cassandra connection trouble spring mvcCassandra连接故障spring mvc
【发布时间】:2016-06-21 05:13:06
【问题描述】:

我尝试使用 Cassandra 数据库在 STS 中创建一个 Spring MVC 项目。我是使用 Cassandra DB for 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 中添加了 Cassandra Driver 的依赖项

这是我的 Pom 的一部分 org.hibernate.ogm 休眠-ogm-cassandra 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>

这是我的休眠工具

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;
   }

}

我想从数据库中获取有关链接 ID、名称和地址的数据,但我收到了那个错误。我希望我不要重新发布,有人可以帮助我吗?
谢谢

【问题讨论】:

    标签: java spring hibernate maven spring-mvc


    【解决方案1】:

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

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

    【讨论】:

    • 让我先试试,伙计
    • 我发现了问题,它是由cassandra jdbc驱动程序名称引起的,伙计
    【解决方案2】:

    我认为它在运行时没有得到特定的 Jar,所以转到 pom.xml, 您可以添加一个范围标记,这意味着您希望您的依赖项在运行时默认为编译时。 org.springframework.data 弹簧数据卡桑德拉 1.4.2.发布 运行

    <!-- 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 构建路径条目。
    • 单击 Maven 依赖项。
    • 完成。

    【讨论】:

    • 让我先试试吧,伙计
    • 当我选择 Java Build Path Entries 时,没有 Maven 依赖项的选项,伙计
    • 我发现了关于我的案例的问题,它与 Cassandra 驱动程序类名称有关。应该是“java.lang.AbstractMethodError”但是非常感谢你帮助我,伙计
    猜你喜欢
    • 2013-10-05
    • 1970-01-01
    • 2018-01-23
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    相关资源
    最近更新 更多