我一直在使用Datastax-Java-Driver中的对象映射器和访问器而没有问题,但是为了访问一个表我得到一个DriverInternalError,根据文档http://docs.datastax.com/en/latest-java-driver-api/com/datastax/driver/core/exceptions/DriverInternalError.html

“这不应该被提出并指出一个错误(无论是在驱动程序中还是在Cassandra中) . ”

我的表定义为

CREATE TABLE buscon.billcycle (
    billcycle uuid,
    cutoffday int,
    description text,
    length int,
    period text,
    PRIMARY KEY (billcycle)

我有一个数据行;

enter image description here

我的代码如下;

public BillCycle loadBillCycle(String billcycle) {
        BillCycle bc = (BillCycle) myMapper.get(billcycle)
        return bc;
    }

我的 class 被定义为

@Table(keyspace = "buscon", name = "billcycle")
public class BillCycle {

    @PartitionKey
    private UUID billcycle;
    private String description;
    private int cutOffDay;
    private int length;
    private String period;
// rest are simple getters & setters plus default empty constructor
}

当我使用访问器返回表中的所有行(从billcycle中选择*)时,这可以正常工作 .

我也可以从cql客户端查询数据,没有任何问题 .

同一程序可以返回其他对象

完整堆栈跟踪如下

2016-08-19 13:50:19,553错误 - WebMethods中的错误:getBillCycle:com.datastax.driver.core.exceptions.DriverInternalError:抛出了意外的异常com.datastax.driver.core.exceptions.DriverInternalError:抛出了意外的异常com.datastax.driver.mapping.DriverThrowables.propagateCause(DriverThrowables.java:43)at com.datastax.driver.mapping.Mapper.get(Mapper.java:429)at net.kaisersmith.sis.persistence.CassandraDAO.load( CassandraDAO.java:34)net.kaisersmith.sis.Coord.loadBillCycle(Coord.java:76)at net.kaisersmith.sis.WebMethods.getBillCycle(WebMethods.java:63)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native方法)在org.glassfish.jersey.server.model的java.lang.reflect.Method.invoke(未知来源)的sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)的sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) org.glassfish.jersey.serve上的.internal.ResourceMethodInvocationHandlerFactory $ 1.invoke(ResourceMethodInvocationHandlerFactory.java:81) r.model.internal.AbstractJavaResourceMethodDispatcher $ 1.run(AbstractJavaResourceMethodDispatcher.java:151)org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:171)org.glassfish.jersey.server.model .internal.JavaResourceMethodDispatcherProvider $ ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:152)org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104)org.glassfish.jersey.server.model.ResourceMethodInvoker .invoke(ResourceMethodInvoker.java:406)org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:350)org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:106) )org.glassfish.jersey.server.ServerRuntime $ 1.run(ServerRuntime.java:259)org.glassfish.jersey.internal.Errors $ 1.call(Errors.java:271)at org.glassfish.jersey.in ternal.Errors $ 1.call(Errors.java:267)org.glassfish.jersey.internal.Errors.process(Errors.java:315)org.glassfish.jersey.internal.Errors.process(Errors.java:297) )org.glassfish.jersey.jersey.process.inx上的org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:320)的org.glassfish.jersey.internal.Errors.process(Errors.java:267)org.glassfish.jersey.server . org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1028)的ServerRuntime.process(ServerRuntime.java:236)位于org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:373)org位于org.glassfish.jersey.servie.ServletContainer.service(ServletContainer.java:344)的.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:381)org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer) .java:219)org.eclipse.jetty.ServletHolder.handle(ServletHolder.java:769)位于org.eclipse.jetty的org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) . server.session位于org.eclipse.jetty.servlet.servlet.ServletHandler.doScope的org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1125)的.SessionHandler.doHandle(SessionHandler.java:221)(ServletHandler.java:515 )org.eclipse.jetty上的org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)org.eclipse.jet.server.hand.ContextHandler.doScope(ContextHandler.java:1059) . org.eclipse.jetty.Server.handle(服java:497)org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)atg.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248)org.eclipse.jetty.io .AbstractConnection $ 2.run(AbstractConnection.java:540)atg.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:610)org.eclipse.jetty.util.thread.QueuedThreadPool $ 3.run(QueuedThreadPool) .java:539)at java.lang.Thread.run(Unknown Source)由以下引起:java.lang.ClassCastException:java.lang.String无法在com.datastax.driver.core.TypeCodec $ AbstractUUIDCodec.serialize(TypeCodec)中强制转换为java.util.UUID .java:1604)atcom.datastax.driver.core.AbstractData.set(AbstractData.java:530)位于com.datastax.driver.core.AbstractData.set(AbstractData.java:516)的com.datastax.driver.core.BoundStatement.set( BoundStatement.java:828)com.datastax.driver.mapping.Mapper.setObject(Mapper.java:258)at com.datastax.driver.mapping.Mapper.access $ 000(Mapper.java:47)at com.datastax . com.google.common.util.concurrent.Futures $ 1.apply的com.datastax.driver.mapping.Mapper $ 7.apply(Mapper.java:385)上的driver.mapping.Mapper $ 7.apply(Mapper.java:395) (Futures.java:713)com.google.common.util.concurrent.Futures $ ChainingListenableFuture.run(Futures.java:861)com.google.common.util.concurrent.MoreExecutors $ SameThreadExecutorService.execute(MoreExecutors.java) :297)com.google.com上的com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)com.google.com上的com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145) . com.googl上的common.util.concurrent.AbstractFuture.set(AbstractFuture.java:185) e.common.util.concurrent.SettableFuture.set(SettableFuture.java:53)at com.datastax.driver.mapping.Mapper $ 4.onSuccess(Mapper.java:124)at com.datastax.driver.mapping.Mapper $ 4 . com.google.common.util.concurrent.Futures $ 4.run(Futures.java:1181)上的onSuccess(Mapper.java:121)com.google.common.util.concurrent.MoreExecutors $ SameThreadExecutorService.execute(MoreExecutors.java) :297)com.google.com上的com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)com.google.com上的com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145) . com.google.common.util.concurrent上的com.google.common.util.concurrent.Futures $ ChainingListenableFuture $ 1.run(Futures.java:872)中的common.util.concurrent.AbstractFuture.set(AbstractFuture.java:185) .MoreExecutors $ SameThreadExecutorService.execute(MoreExecutors.java:297)com.google.common.util.concurrent.Futures $ ImmediateFuture.addListener(Futures.java:102)at com.google.common.util.concurrent.Futures $ ChainingListenableFuture . 运行(Futures.java:868)com.google.common.util.concurrent.MoreExecutors $ SameThreadExecutorService.execute(MoreExecutors.java:297)com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java: 156)com.google.common.com上的com.google.common.util.concurrent.ExecutionList.exe(ExecutionList.java:145)com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:185) .util.concurrent.Futures $ ChainingListenableFuture $ 1.run(Futures.java:872)com.google.com上的com.google.common.util.concurrent.MoreExecutors $ SameThreadExecutorService.execute(MoreExecutors.java:297) . concurrent.ExecutionList.executeListener(ExecutionList.java:156)位于com.google.common.util.concurrent.ExecutionList.add(ExecutionList.java:101)com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture . java:170)at com.google.common.util.concurrent.Futures $ ChainingListenableFuture.run(Futures.java:868)at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown来自)java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知来源)... 1更多