2016-12-14 61 views
-1

流:使用Spring xd与gemfire-json-server连接Apache geode。 JSON不能被解析

stream create --name stocks --definition "http --port=9000 | gemfire-json-server --host=localhost --port=10334 --useLocator=true --regionName=Stocks --keyExpression=payload.getField('symbol')" --deploy 

然后结束数据:

http post --target http://localhost:9000 --data {"symbol":"FAKE","price":73} 

则失败:

2016-12-14T09:51:20 + 0800 1.3.1.RELEASE错误pool-15-thread-4 http.NettyHttpInboundChannelAdapter - 错误发送消息 org.springframework.integration.transformer.MessageTransformationException: 无法转换消息;嵌套异常是 org.springframework.messaging.MessageHandlingException:嵌套 异常是com.gemstone.gemfire.pdx.JSONFormatterException:可能 不解析JSON文档:[Source:{“symbol”:“FAKE”,“price”:73 };行: 1,柱:29]在 org.springframework.integration.transformer.MessageTransformingHandler.handleRequestMessage(MessageTransformingHandler.java:95) 〜[弹簧一体化芯-4.2.5.RELEASE.jar:NA]在 org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:99) 〜[spring-integration-core-4.2.5.RELEASE.jar:na] at org.springframework.integration.handler.AbstractMessageHandler.handleMessage (AbstractMessageHandler.java:127) 〜[弹簧一体化芯-4.2.5.RELEASE.jar:NA] ......

引起:org.springframework.messaging.MessageHandlingException: 嵌套异常是com.gemstone.gemfire.pdx.JSONFormatterException: 无法解析JSON文档:[Source:{“symbol”:“FAKE”,“price”:73};在[ line:1,column:29] at org.springframework.integration.handler org.springframework.integration.transformer.AbstractMessageProcessingTransformer.transform(AbstractMessageProcessingTransformer.java:90) 〜[spring-integration-core-4.2.5.RELEASE.jar:na] at org.springframework.integration.transformer.MessageTransformingHandler.handleRequestMessage (MessageTransformingHandler.java:89) 〜[spring-integration-core-4.2.5.RELEASE.jar:na] ... 51个常见帧 省略引起者:com.gemstone.gemfire.pdx.JSONFormatterException: Could not解析JSON文件:[来源:{“symbol”:“FAKE”,“价“:73}; 行:1,柱:29]在 com.gemstone.gemfire.pdx.JSONFormatter.fromJSON(JSONFormatter.java:62) 〜[NA:NA]在 org.springframework.integration.x.gemfire.JsonStringToObjectTransformer。 toObject(JsonStringToObjectTransformer.java:37) 〜[NA:NA]在sun.reflect.NativeMethodAccessorImpl.invoke0(母语 方法)〜[NA:1.8.0_25]在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62) 〜[na:1.8.0_25] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 〜[na:1.8.0_25] at java.lang.reflect.Method.invoke(Method.java :483) 〜[na:1.8.0_25]

......

产生的原因:com.gemstone.gemfire.cache.client.ServerOperationException: 抛出java.lang.ClassNotFoundException: 组织。apache.geode.pdx.PdxInitializationException at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:686) 〜[na:na] at com.gemstone.gemfire.cache.client。 internal.OpExecutorImpl.handleException(OpExecutorImpl.java:613) 〜[na:na] at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:171) 〜[na:na] at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:115) 〜[na:na] at com.gemstone.gemfire.cache.client.internal.PoolImpl.execute(PoolImpl .java:696) 〜[na:na] at com.gemstone.gemfire.cache.client.internal.GetPDXIdForTypeOp.execute(GetPDXIdForTy peOp.java:34) 〜[na:na] at com.gemstone.gemfire.pdx.internal.ClientTypeRegistration.defineType(ClientTypeRegistration.java:56) 〜[na:na] at com.gemstone.gemfire。 pdx.internal.TypeRegistry.defineType(TypeRegistry.java:179) 〜[na:na] at com.gemstone.gemfire.pdx.internal.TypeRegistry.defineLocalType(TypeRegistry.java:224) 〜[na:na]在 com.gemstone.gemfire.pdx.internal.PdxWriterImpl.completeByteStreamGeneration(PdxWriterImpl.java:477) 〜[NA:NA]在 com.gemstone.gemfire.pdx.internal.PdxInstanceFactoryImpl.create(PdxInstanceFactoryImpl.java:53 ) 〜[na:na] at com.gemstone.gemfire.pdx.internal.json.PdxInstanceHelper.endObject字段(PdxInstanceHelper.java:175) 〜[NA:NA]在 com.gemstone.gemfire.pdx.JSONFormatter.getPdxInstance(JSONFormatter.java:152) 〜[NA:NA]在 com.gemstone.gemfire。 pdx.JSONFormatter.fromJSON(JSONFormatter.java:56) 〜[na:na] ... 69个常用帧被省略引起: java.lang.ClassNotFoundException: org.apache.geode.pdx.PdxInitializationException在 java。 net.URLClassLoader $ 1.run(URLClassLoader.java:372)〜[NA:1.8.0_25] 在java.net.URLClassLoader的$ 1.run(URLClassLoader.java:361) 〜[NA:1.8.0_25]在java的。 security.AccessController.doPrivileged(Native Method)〜[na:1.8.0_25] at java.net.URLClassLoader.findClass(URLClassLoader.ja VA:360) 〜[NA:1.8.0_25]

....成功创建

springxd流。我想我是否想念一些库?它显示失败的原因:Noclassfound。但是我只是从网站上下载软件包并不做任何改动。所以我不知道为什么。愿有人能帮助我。谢谢。

回答

0

感谢Procrastinatus Maximus。 大家好我发现问题是由Geode版本引起的。最新的 包将类路径从“gemfire”更改为“geode”。 所以问题来了。 你应该做的是使用以前的版本: 我使用v1.0.0-incubating.M2。 问题解决了!