我们最近一直在考虑将我们的J2EE系统与用Python / Perl编写的其他应用程序集成。我们的应用程序通过JMS与其他Java系统集成得非常好。非java系统是否有可能接收Serializable消息并对其进行一些修改(在某种程度上,每个类属性都是java原始类型)?我们也想在另一个方向上做,例如python应用程序构造对象,然后通过我们的Java应用程序通过JMS发送并修改(至少可以理解)。您对我们有这方面的经验/提示吗?
提前致谢, 彼得
答案 0 :(得分:3)
您不希望为此使用Serializeable对象。您需要更便携的格式,例如基于文本的格式,如XML或JSON或CSV。在其他平台上尝试读取序列化的java对象是不值得的。
现在你可以使用另一种二进制格式,例如Google格式(我认为它被称为协议缓冲区)。您还可以更改Java类,特别是您计划交换的类,并且可以实现Externalizable接口。这让你可以完全控制java类的读写。这样你仍然可以使用java序列化协议和工作流程,但是可以编写和读取更便携的格式。
这样,您可以逐步添加对Python系统的支持,而不会真正干扰系统的其余部分,特别是对于消息传递,只要在切换时队列中没有要处理的旧消息。