Spring integration SpringXD:流中模块之间相同类的ClassCastException

Spring integration SpringXD:流中模块之间相同类的ClassCastException,spring-integration,spring-xd,spring-social-twitter,Spring Integration,Spring Xd,Spring Social Twitter,我有一个定制的SpringXD源模块,它使用SpringSocialforTwitter并输出Tweet对象。这很好用。我可以记录源的输出并查看列出的Tweet对象。我可以将该流的源的输出类型更改为application/json,以查看json的输出。这正如预期的那样有效 然后我创建了一个处理器模块,该模块将根据Tweet创建一个新对象并输出它。转换消息需要一个GenericMessage,其中包含一个Tweet对象作为其有效负载(我也尝试过让method参数仅为Tweet,但这也不起作用)

我有一个定制的SpringXD源模块,它使用SpringSocialforTwitter并输出Tweet对象。这很好用。我可以记录源的输出并查看列出的Tweet对象。我可以将该流的源的输出类型更改为application/json,以查看json的输出。这正如预期的那样有效

然后我创建了一个处理器模块,该模块将根据Tweet创建一个新对象并输出它。转换消息需要一个GenericMessage,其中包含一个Tweet对象作为其有效负载(我也尝试过让method参数仅为Tweet,但这也不起作用)

源模块输出一条Tweet,我得到一个类强制转换异常:

java.lang.ClassCastException: org.springframework.social.twitter.api.Tweet cannot be cast to org.springframework.social.twitter.api.Tweet
我已经验证了这两个模块使用的是相同版本的SpringSocialTwitter,所以应该没有问题。目前,模块通过本地传输进行通信,因此这也不应该是任何类加载问题(它们最终将需要通过非本地传输进行通信)

我也尝试过解决方法,比如在流中定义源模块的输出类型应该是
application/json
,然后尝试从输入字符串有效负载中读取json,但由于Spring社交推特对象的性质,Jackson没有遵守

我想知道为什么会发生这种情况,我应该如何解决?我觉得我肯定做错了什么。如果我不被允许这样做,我想知道为什么会这样做,以及应该做什么

任何帮助都将不胜感激

多谢各位


编辑:我正在使用Spring XD 1.2.1。发布

请参阅。这几乎肯定是一个类装入器问题。尝试从模块的类路径中删除spring social,并将其添加到xd/lib,以便由相同的类加载器加载

见。这几乎肯定是一个类装入器问题。尝试从模块的类路径中删除spring social,并将其添加到xd/lib,以便由相同的类加载器加载

见。这几乎肯定是一个类装入器问题。尝试从模块的类路径中删除spring social,并将其添加到xd/lib,以便由相同的类加载器加载

见。这几乎肯定是一个类装入器问题。尝试从模块的类路径中删除spring social,并将其添加到xd/lib,以便由相同的类加载器加载

前几天我确实尝试过这个,但是在压缩jar时出现了一个错误。我提取了内容,并根据互联网的要求重新创建了未压缩的jar,但仍然给了我压缩错误。我会再试一次看。所以我认为你最终是对的。我能够通过取消共享、重新绑定w/zero压缩并将其放入libs目录来消除错误。但是,我收到了其他错误,因为jar的依赖项不在xd/lib目录中。对于我来说,跟踪每个需要的jar、unjar,然后重新对jar进行解压缩,只是为了让java序列化工作,这是不实际的。我将继续与jackson/boon或kryo进行系列化。谢谢你的回答,因为我真的被卡住了。前几天我真的在尝试这个,但是在压缩罐子时出错了。我提取了内容,并根据互联网的要求重新创建了未压缩的jar,但仍然给了我压缩错误。我会再试一次看。所以我认为你最终是对的。我能够通过取消共享、重新绑定w/zero压缩并将其放入libs目录来消除错误。但是,我收到了其他错误,因为jar的依赖项不在xd/lib目录中。对于我来说,跟踪每个需要的jar、unjar,然后重新对jar进行解压缩,只是为了让java序列化工作,这是不实际的。我将继续与jackson/boon或kryo进行系列化。谢谢你的回答,因为我真的被卡住了。前几天我真的在尝试这个,但是在压缩罐子时出错了。我提取了内容,并根据互联网的要求重新创建了未压缩的jar,但仍然给了我压缩错误。我会再试一次看。所以我认为你最终是对的。我能够通过取消共享、重新绑定w/zero压缩并将其放入libs目录来消除错误。但是,我收到了其他错误,因为jar的依赖项不在xd/lib目录中。对于我来说,跟踪每个需要的jar、unjar,然后重新对jar进行解压缩,只是为了让java序列化工作,这是不实际的。我将继续与jackson/boon或kryo进行系列化。谢谢你的回答,因为我真的被卡住了。前几天我真的在尝试这个,但是在压缩罐子时出错了。我提取了内容,并根据互联网的要求重新创建了未压缩的jar,但仍然给了我压缩错误。我会再试一次看。所以我认为你最终是对的。我能够通过取消共享、重新绑定w/zero压缩并将其放入libs目录来消除错误。但是,我收到了其他错误,因为jar的依赖项不在xd/lib目录中。对于我来说,跟踪每个需要的jar、unjar,然后重新对jar进行解压缩,只是为了让java序列化工作,这是不实际的。我将继续与jackson/boon或kryo进行系列化。谢谢你的回答,因为我真的被卡住了。
stream create --name test --definition 'my-tweet-source-module | my-tweet-processor | log' --deploy
java.lang.ClassCastException: org.springframework.social.twitter.api.Tweet cannot be cast to org.springframework.social.twitter.api.Tweet