Cassandra Test Case 실행시 아래와 같은 에러가 발생할 수 있다. (나는 cassandra 2.0.2를 사용중이다.)


Caused by: java.lang.UnsatisfiedLinkError: no snappyjava in java.library.path


이 문제는 아래 버그 리포트에도 나타나 있지만. snappy java 문제는 cassandra 가 아니라 snappy java  wkcp 버그이다..

https://issues.apache.org/jira/browse/CASSANDRA-4400

https://github.com/xerial/snappy-java/issues/12


이를 해결하기 위해서는 snappy버전을 1.0.5-M4로 올리고, netty 3.x 를 포함시킨후,  snappyjava를 include했던 기존 라이브러리에서 snappyjava를 exclusion을 해야 compile 및 실행이 문제 없다. 


<!-- 추가 -->

<dependency>

  <groupId>org.xerial.snappy</groupId>

  <artifactId>snappy-java</artifactId>

  <version>1.0.5-M4</version>

</dependency>

<dependency>

  <groupId>org.jboss.netty</groupId>

  <artifactId>netty</artifactId>

  <version>3.1.0.GA</version>

</dependency>


<!-- 수정 -->

<dependency>

<groupId>com.netflix.astyanax</groupId>

<artifactId>astyanax</artifactId>

<version>1.56.44</version>

<exclusions

    <exclusion>

        <artifactId>snappy-java</artifactId>

        <groupId>org.xerial.snappy</groupId>

    </exclusion>

</exclusions>

</dependency>

 <dependency>

        <groupId>org.apache.cassandra</groupId>

        <artifactId>cassandra-all</artifactId>

        <version>2.0.2</version>

        <exclusions>  

              <exclusion>

                  <artifactId>snappy-java</artifactId>

                  <groupId>org.xerial.snappy</groupId>

                 </exclusion>

        </exclusions>

</dependency>




참고로 netty를 포함해서 컴파일하지 않으면, 아래 에러가 발생한다. 최신버전은 io.netty로 수정되었기 때문에 버전은 약간 낮은게 낫다. 


java.lang.NoSuchMethodError: org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder.<init>(IIIIIZ)V


Posted by '김용환'
,