我在尝试将我的 java 应用程序连接到以图形模式运行的 Cassandra 实例时遇到了问题。当我尝试创建连接时,出现以下异常
java.lang.IllegalAccessError: tried to access class com.datastax.driver.core.TypeCodec from class com.datastax.driver.dse.graph.PayloadHelper
at com.datastax.driver.dse.graph.PayloadHelper.asBytes(PayloadHelper.java:19) ~[dse-driver-1.1.2.jar:na]
at com.datastax.driver.dse.graph.GraphOptions.rebuildDefaultPayload(GraphOptions.java:286) ~[dse-driver-1.1.2.jar:na]
at com.datastax.driver.dse.graph.GraphOptions.<init>(GraphOptions.java:59) ~[dse-driver-1.1.2.jar:na]
at com.datastax.driver.dse.DseCluster$Builder.getConfiguration(DseCluster.java:269) ~[dse-driver-1.1.2.jar:na]
at com.datastax.driver.dse.DseCluster$Builder.getConfiguration(DseCluster.java:69) ~[dse-driver-1.1.2.jar:na]
at com.datastax.driver.core.Cluster.<init>(Cluster.java:115) ~[cassandra-driver-core-2.1.9.jar:na]
at com.datastax.driver.core.Cluster.buildFrom(Cluster.java:182) ~[cassandra-driver-core-2.1.9.jar:na]
at com.datastax.driver.core.Cluster$Builder.build(Cluster.java:1285) ~[cassandra-driver-core-2.1.9.jar:na]
at com.datastax.driver.dse.DseCluster$Builder.build(DseCluster.java:261) ~[dse-driver-1.1.2.jar:na]
除了初始化一个尝试连接到我正在运行的 cassandra 的 bean 之外,该应用程序现在没有做任何事情。我可以使用 datastax studio 很好地连接到我的 cassandra 节点并执行 gremlin 查询。我在这里和其他地方看到的所有示例都使用相同的样板代码进行连接,所以我不确定发生了什么。我可以遵循的任何线程将不胜感激
绒球
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Datastax Enterprise Graph -->
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>dse-driver</artifactId>
<version>1.1.2</version>
</dependency>
</dependencies>
初始化代码
import com.datastax.driver.dse.DseCluster;
import com.datastax.driver.dse.DseSession;
import org.springframework.stereotype.Repository;
@Repository("crmGraph")
public class CrmGraph implements Storage{
private DseSession dseSession = null;
public CrmGraph() {
DseCluster dseCluster = DseCluster.builder().addContactPoint("127.0.0.1").build();
dseSession = dseCluster.connect();
}
...
}