gpt4 book ai didi

java - 如何在客户端和服务器之间共享类实体?

转载 作者:太空宇宙 更新时间:2023-11-04 08:16:46 25 4
gpt4 key购买 nike

我有2个项目:

1) 客户端 - Android
2) 服务器 - Google App Engine

在服务器端,我有类实体,称为配置文件
我将其包含在客户端服务器项目的构建路径中。我正在客户端中创建配置文件的新实例,将其发送到服务器并将其存储在 JPA DB 中。
在服务器端在特定时间后,我从服务器 vector 将服务器中的所有客户端发送给用户。

问题是:

当我添加配置文件的构建路径时,我得到:

The project was not built since its build path is incomplete. Cannot find the class file for javax.jdo.spi.PersistenceCapable. 
The type javax.jdo.spi.PersistenceCapable cannot be resolved. It is indirectly referenced from required .class files

因此,我在客户端中添加jdo2-api-2.3-eb.jar。问题似乎消失了。但是在运行时,当我将配置文件 vector 从服务器发送到客户端时,我得到:

 java.io.InvalidClassException: javax.jdo.identity.LongIdentity; Incompatible class (SUID): javax.jdo.identity.LongIdentity: static final long serialVersionUID =2472141538875317527L; but expected javax.jdo.identity.LongIdentity: static final long serialVersionUID =2940818939440220368L; 

我认为这是由我添加的 jdo2-api-2.3-eb.jar 引起的。

所以我想问如何正确地做到这一点?我知道Maven或Ant可以解决这个问题,但看起来很困惑。有没有什么老办法只使用基本的 Eclipse 来解决这个问题?如果没有,我将感谢其他带有良好教程的解决方案。

最佳答案

我会使用非二进制格式来传输数据,例如 JSON 或 XML。尝试使用二进制序列化会导致头痛,即使您解决了构建路径问题,即使您使用更简单的“传输”bean 对象。例如,当您想要更新客户端或服务器时,您必须使它们完全同步(JAR),如果没有大量额外的工作,您就无法让旧客户端与新服务器进行通信(反之亦然)。但是通过使用 JSON 或 XML,客户端和服务器可以在某种程度上独立发展。

在 Android 上使用 XML 或 JSON 非常简单,对于 Java EE(服务器)也是如此。

关于java - 如何在客户端和服务器之间共享类实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10280767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com