Google bigquery doFilter(ServeBlobFilter.java:63) 位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 位于com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) 位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 位于com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125) 位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 在com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366) 位于com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349) 位于com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116) 位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 位于org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 位于org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 位于org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 位于org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 位于org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 位于com.google.appengine.tools.development.devappengineewebappcontext.handle(devappengineewebappcontext.java:98) 位于org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 位于com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:490) 位于org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 位于org.mortbay.jetty.Server.handle(Server.java:326) 位于org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 位于org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) 位于org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) 位于org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 位于org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 位于org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) 位于org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 原因:java.lang.IllegalArgumentException:应为基元类,但得到:class com.google.common.primitives.UnsignedLong 位于com.google.api.client.util.Data.parsePrimitiveValue(Data.java:453) 在com.google.api.client.json.JsonParser.parseValue(JsonParser.java:628)
免责声明:我没有使用Google bigquery doFilter(ServeBlobFilter.java:63) 位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 位于com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) 位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 位于com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125) 位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 在com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366) 位于com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349) 位于com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116) 位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 位于org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 位于org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 位于org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 位于org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 位于org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 位于com.google.appengine.tools.development.devappengineewebappcontext.handle(devappengineewebappcontext.java:98) 位于org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 位于com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:490) 位于org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 位于org.mortbay.jetty.Server.handle(Server.java:326) 位于org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 位于org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) 位于org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) 位于org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 位于org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 位于org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) 位于org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 原因:java.lang.IllegalArgumentException:应为基元类,但得到:class com.google.common.primitives.UnsignedLong 位于com.google.api.client.util.Data.parsePrimitiveValue(Data.java:453) 在com.google.api.client.json.JsonParser.parseValue(JsonParser.java:628),google-bigquery,Google Bigquery,免责声明:我没有使用BigQuery的第一手经验,以下是一般编程推理: 根据UnsignedLong是无符号长值的包装类。另外,根据文档,它有一个longValue()方法,正如您所料,它以long形式返回值 在某个地方(在您发布的代码中不明显的地方),您有一个方法(可能是间接地)调用com.google.api.client.util.Data.parsePrimitiveValue(Data.java:453),如下所示(): 因此,找出如何将调用更改为 parsePrimitiveValu
BigQuery
的第一手经验,以下是一般编程推理:
根据UnsignedLong是无符号长值的包装类。另外,根据文档,它有一个longValue()
方法,正如您所料,它以long
形式返回值
在某个地方(在您发布的代码中不明显的地方),您有一个方法(可能是间接地)调用com.google.api.client.util.Data.parsePrimitiveValue(Data.java:453)
,如下所示():
因此,找出如何将调用更改为
parsePrimitiveValue(Long.class.getName(), val.longValue().toString())
thnks为您提供帮助,但我没有使用任何无符号值,它会在execute方法执行后立即给我异常executed@Ajay张贴您的整个堆栈trace@Ajay堆栈跟踪-不是您的代码,发布控制台中打印的所有内容,包括异常
public static Object parsePrimitiveValue(Type type, String stringValue) {
Class<?> primitiveClass = type instanceof Class<?> ? (Class<?>) type : null;
...
if (primitiveClass == Character.class || primitiveClass == char.class) {....}
if (primitiveClass == Boolean.class || primitiveClass == boolean.class) {... }
//checks for each primitive class to see if it matches the type passed in
//if no primitive type is matched:
throw new IllegalArgumentException("expected primitive class, but got: " + type);
}
someMethod(){
UnsignedLong val;
...
parsePrimitiveValue(val.getClass().getName(), val.toString());
...
}
parsePrimitiveValue(Long.class.getName(), val.longValue().toString())