首页 > 代码库 > 解决用户自生成meta导入kylin后报错问题Can not deserialize instance of java.lang.String[] out of VALUE_STRING token

解决用户自生成meta导入kylin后报错问题Can not deserialize instance of java.lang.String[] out of VALUE_STRING token

报错栈:

2017-06-22 20:48:07,101 ERROR [http-bio-7070-exec-5] cube.CubeManager:947 : Error during load cube instance, skipping : /cube/energon_dm_admission_record_fact_01.jsonjava.lang.IllegalStateException: Failed to init CubeDescManager from kylin_metadata@hbase        at org.apache.kylin.cube.CubeDescManager.getInstance(CubeDescManager.java:78)        at org.apache.kylin.cube.CubeManager.reloadCubeLocalAt(CubeManager.java:922)        at org.apache.kylin.cube.CubeManager.loadAllCubeInstance(CubeManager.java:900)        at org.apache.kylin.cube.CubeManager.<init>(CubeManager.java:141)        at org.apache.kylin.cube.CubeManager.getInstance(CubeManager.java:105)        at org.apache.kylin.rest.service.BasicService.getCubeManager(BasicService.java:68)        at org.apache.kylin.rest.service.CubeService.listAllCubes(CubeService.java:100)        at org.apache.kylin.rest.service.CubeService$$FastClassBySpringCGLIB$$17a07c0e.invoke(<generated>)        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:700)        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)        at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:64)        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:633)        at org.apache.kylin.rest.service.CubeService$$EnhancerBySpringCGLIB$$543fa169.listAllCubes(<generated>)        at org.apache.kylin.rest.controller.CubeController.getCubes(CubeController.java:97)        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)        at java.lang.reflect.Method.invoke(Method.java:497)        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:743)        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:672)        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:82)        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:933)        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:867).....Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String[] out of VALUE_STRING token at [Source: java.io.DataInputStream@1a4a9b5a; line: 1, column: 205] (through reference chain: org.apache.kylin.cube.model.CubeDesc["null_string"])        at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148)        at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:857)        at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:853)        at com.fasterxml.jackson.databind.deser.std.StringArrayDeserializer.handleNonArray(StringArrayDeserializer.java:145)        at com.fasterxml.jackson.databind.deser.std.StringArrayDeserializer.deserialize(StringArrayDeserializer.java:47)        at com.fasterxml.jackson.databind.deser.std.StringArrayDeserializer.deserialize(StringArrayDeserializer.java:17)        at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:520)        at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:101)        at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:258)        at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:125)        at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3736)        at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2796)        at org.apache.kylin.common.util.JsonUtil.readValue(JsonUtil.java:62)        at org.apache.kylin.common.persistence.JsonSerializer.deserialize(JsonSerializer.java:40)        at org.apache.kylin.common.persistence.ResourceStore.getResource(ResourceStore.java:146)        at org.apache.kylin.cube.CubeDescManager.loadCubeDesc(CubeDescManager.java:173)        at org.apache.kylin.cube.CubeDescManager.reloadAllCubeDesc(CubeDescManager.java:252)        at org.apache.kylin.cube.CubeDescManager.<init>(CubeDescManager.java:99)        at org.apache.kylin.cube.CubeDescManager.getInstance(CubeDescManager.java:71)        ... 86 more
解决:
null_string字段kylin要求为string[],但自生成的meta里面却是空串,所以导致json反序列化失败

解决用户自生成meta导入kylin后报错问题Can not deserialize instance of java.lang.String[] out of VALUE_STRING token