springxd - 无法反序列化[classname]未找到类

时间:2017-01-11 17:57:52

标签: java hdfs avro spring-xd

我在使用springxd将数据从ESB JMS队列保存到avro中时遇到此问题。 我创建了自定义处理器来解析来自JMS队列的入站xml并转换为avro并使用springxd流保存在HDFS中。

这是我的流定义 -

stream create --name NewStream --definition "jms --destination=my.jms.queue --provider=tibco | mycustomprocessor | hdfs-dataset --basePath=/data_lake/avrodata --idleTimeout=60000" --deploy

这是我得到的错误,我也正在打印看起来不错的消息..

  

ERROR inbound.NewStream.1-redis:queue-inbound-channel-adapter1 redis.RedisMessageBus $ 1 - 无法传递消息;重试疲惫;消息发送到队列'错误:NewStream.1'org.springframework.messaging.MessageHandlingException:消息处理程序[NewStream.1.bridge.handler]中发生错误;嵌套异常是org.springframework.xd.dirt.integration.bus.serializer.SerializationException:无法反序列化 [classname]。找不到课程。

这说没有找到类,但是类已经存在并正在使用,我正在从同一个类中打印对象 -

message object{"NameType": null, "Names": null, "EndDeviceEventDetails": null, "EndDeviceEvent": null, "EndDeviceEventType": null, "Header": {"Noun": "EndDeviceEvents", "Context": "PROD", "Verb": "created", "Value": null, "Source": "ADCS", "Timestamp": "2014-08-06T17:00:03.319-07:00", "CorrelationID": "eb1ccda2-6bcc-446d-b90e-3a72a46f861a", "Name": null, "MessageID": "fe567bfb-09d5-46fd-a9f4-7dcad8c51e74", "Property": {"PropertyName": ["TransactionDomain", "GridDirectorAction", "MessageIdentifier", "Stereotype"], "PropertyValue": ["MeterEvent", "urn:com.bchydro.meter.event", "Read Data Id=2.16.840.1.114416.1.63.4215386", "MeterEvent"]}}, "Payload": {"EndDeviceEvents": [{"mRID": "18541", "createdDateTime": null, "issuerID": "2014-08-06T23:05:54Z", "issuerTrackingID": null, "reason": null, "severity": null, "userID": "3", "Asset": {"AssetmRID": null, "AssetNames": [{"Name": "2.16.840.1.114416.1.63.4215386", "NameType": {"NameTypeDescription": null, "NameTypeName": "ESN", "NameTypeAuthority": null}}]}, "EndDeviceEventDetails": [{"EndDeviceEventDetailsName": "EventSequenceNumber", "EndDeviceEventDetailsValue": "46"}, {"EndDeviceEventDetailsName": "EventSequenceNumber", "EndDeviceEventDetailsValue": "46"}, {"EndDeviceEventDetailsName": "EventSequenceNumber", "EndDeviceEventDetailsValue": "46"}, {"EndDeviceEventDetailsName": "EventSequenceNumber", "EndDeviceEventDetailsValue": "46"}], "EndDeviceEventType": "HAN Meter Network Change", "EndDeviceEventNames": [{"Name": "HAN Reset non-routine", "NameType": {"NameTypeDescription": null, "NameTypeName": "Network Change Reason", "NameTypeAuthority": null}}], "Status": {"StatusDateTime": null, "StatusReason": null, "StatusRemark": null, "StatusValue": null}, "UsagePoint": null}], "EndDeviceEventType": [{"EndDeviceEventTypemRID": null, "EndDeviceEventTypedomain": null, "EndDeviceEventTypeeventOrAction": null, "EndDeviceEventTypesubDomain": null, "type": null, "EndDeviceEventTypeNames": null}]}}

感谢您的帮助......

谢谢, AJ

1 个答案:

答案 0 :(得分:0)

如果这是单节点部署,则可能是类加载器问题 - 尝试将包含该类的jar移动到xd/lib(并将其从单个模块中删除)。