title: java.lang.NoClassDefFoundError in spring data cassandra project
body: <p>I'm kind of new to spring data projects and I'm developing a sample application. I'm getting following exception while deploying my spring data cassandra project.</p>
  
  <pre><code>Caused by: java.lang.NoClassDefFoundError: org/springframework/core/ReactiveTypeDescriptor
      ... 58 common frames omitted
  Caused by: java.lang.ClassNotFoundException: org.springframework.core.ReactiveTypeDescriptor
      at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1285) ~[catalina.jar:8.5.15]
      at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119) ~[catalina.jar:8.5.15]
      ... 58 common frames omitted
  </code></pre>
  
  <p>My repository class is as follows,</p>
  
  <pre><code>public interface UserDao extends CassandraRepository&lt;User, Long&gt; {
  
    &lt;S extends User&gt; S save(S entity);
  
    Optional&lt;User&gt; findById(Long primaryKey);
  }
  </code></pre>
  
  <p>Spring config,</p>
  
  <pre><code>   &lt;beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:context="http://www.springframework.org/schema/context"
     xmlns:mvc="http://www.springframework.org/schema/mvc"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:cassandra="http://www.springframework.org/schema/data/cassandra"
  
     xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context-4.0.xsd
      http://www.springframework.org/schema/mvc
      http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
  
      http://www.springframework.org/schema/data/cassandra
      http://www.springframework.org/schema/data/cassandra/spring-cassandra.xsd
      http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans.xsd"&gt;
  
  &lt;context:component-scan base-package="advertise"/&gt;
  &lt;mvc:annotation-driven/&gt;
  &lt;context:property-placeholder location="classpath:system.properties,classpath:cassandra.properties"
                                ignore-resource-not-found="true"
                                ignore-unresolvable="true"/&gt;
  
  &lt;!--Common beans--&gt;
  &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt;
      &lt;property name="prefix" value="/WEB-INF/pages/"/&gt;
      &lt;property name="suffix" value=".jsp"/&gt;
  &lt;/bean&gt;
  
  
  &lt;bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/&gt;
  
  &lt;bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"&gt;
      &lt;property name="maxUploadSize" value="50000000"/&gt;
  &lt;/bean&gt;
  
  &lt;mvc:resources mapping="/css/**" location="/css"/&gt;
  &lt;mvc:resources mapping="/js/**" location="/js"/&gt;
  &lt;mvc:resources mapping="/fonts/**" location="/fonts"/&gt;
  &lt;mvc:resources mapping="/images/**" location="/images"/&gt;
  &lt;mvc:resources mapping="/uploads/**" location="file:/${upload.dir}"/&gt;
  
  &lt;!-- Default bean name is 'cassandraCluster' --&gt;
  &lt;!--&lt;cassandra:cluster contact-points="${cassandra.contactpoints}" port="${cassandra.port}"&gt;
      &lt;cassandra:keyspace action="CREATE_DROP" name="${cassandra.keyspace}" /&gt;
  &lt;/cassandra:cluster&gt;
  
  &amp;lt;!&amp;ndash; Default bean name is 'cassandraSession' &amp;ndash;&amp;gt;
  &lt;cassandra:session keyspace-name="${cassandra.keyspace}" schema-action="NONE" /&gt;--&gt;
  
  &lt;!-- REQUIRED: The Cassandra Cluster --&gt;
  &lt;cassandra:cluster id="cluster" contact-points="${cassandra.contactpoints}" port="${cassandra.port}" /&gt;
  
  &lt;!-- REQUIRED: The Cassandra Session, built from the Cluster, and attaching
  to a keyspace --&gt;
  &lt;cassandra:session id="session" keyspace-name="${cassandra.keyspace}" cluster-ref="cluster" /&gt;
  
  &lt;!-- REQUIRED: The Default Cassandra Mapping Context used by CassandraConverter --&gt;
  &lt;cassandra:mapping&gt;
      &lt;cassandra:user-type-resolver keyspace-name="${cassandra.keyspace}" /&gt;
  &lt;/cassandra:mapping&gt;
  
  &lt;!-- REQUIRED: The Default Cassandra Converter used by CassandraTemplate --&gt;
  &lt;cassandra:converter /&gt;
  
  &lt;!-- REQUIRED: The Cassandra Template is the building block of all Spring
  Data Cassandra --&gt;
  &lt;cassandra:template id="cassandraTemplate" session-ref="session" /&gt;
  
  &lt;!-- OPTIONAL: If you are using Spring Data for Apache Cassandra Repositories, add
  your base packages to scan here --&gt;
  &lt;cassandra:repositories base-package="advertise.orm.d ao" cassandra-template-ref="cassandraTemplate" /&gt;
  </code></pre>
  
  <p></p>
  
  <p>Related dependencies,</p>
  
  <pre><code>    &lt;dependency&gt;
          &lt;groupId&gt;org.springframework&lt;/groupId&gt;
          &lt;artifactId&gt;spring-orm&lt;/artifactId&gt;
          &lt;version&gt;${spring.version}&lt;/version&gt;
      &lt;/dependency&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;org.springframework&lt;/groupId&gt;
          &lt;artifactId&gt;spring-context&lt;/artifactId&gt;
          &lt;version&gt;${spring.version}&lt;/version&gt;
      &lt;/dependency&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;org.springframework&lt;/groupId&gt;
          &lt;artifactId&gt;spring-webmvc&lt;/artifactId&gt;
          &lt;version&gt;${spring.version}&lt;/version&gt;
          &lt;exclusions&gt;
              &lt;exclusion&gt;
                  &lt;groupId&gt;commons-logging&lt;/groupId&gt;
                  &lt;artifactId&gt;commons-logging&lt;/artifactId&gt;
              &lt;/exclusion&gt;
          &lt;/exclusions&gt;
      &lt;/dependency&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;org.springframework&lt;/groupId&gt;
          &lt;artifactId&gt;spring-web&lt;/artifactId&gt;
          &lt;version&gt;${spring.version}&lt;/version&gt;
          &lt;exclusions&gt;
              &lt;exclusion&gt;
                  &lt;groupId&gt;commons-logging&lt;/groupId&gt;
                  &lt;artifactId&gt;commons-logging&lt;/artifactId&gt;
              &lt;/exclusion&gt;
          &lt;/exclusions&gt;
      &lt;/dependency&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;org.springframework.data&lt;/groupId&gt;
          &lt;artifactId&gt;spring-data-cassandra&lt;/artifactId&gt;
          &lt;version&gt;2.0.3.RELEASE&lt;/version&gt;
      &lt;/dependency&gt;
  </code></pre>
  
  <ul>
  <li>Java version: 1.8</li>
  <li>Deployment Container: tomcat 8</li>
  </ul>
  
  <p><strong>My spring version is 4.2.2.RELEASE and spring data cassandra version is 2.0.3.RELEASE.</strong> Is this error comes because of a version mismatch? Or or because of some other mistake of mine?
  I would be very thankful if you could help me to solve this issue. Thanks.</p>