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

标签 java eclipse

我有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/

相关文章:

java - 有什么方法可以使用 Eclipse 调试 Web 应用程序吗?

linux - 让 GoClipse 在普通的 GO 工作空间中正常工作

javascript - _以 "revealing module pattern"样式编写的 JSDoc'ing Javascript 文件的最佳实践?

java - 使用 Apache Camel 拆分、聚合然后在一个大文件上进行流式写入

java - 获取事务中自增字段的值

具有实例方法的 Java 构造函数

java - 如何将 Eclipse 配置为在构建过程中自动刷新项目?

android - 打开项目时遇到问题

java - 如何在Java中打开临时目录?

java - 如何重用与 JavaMail 的连接以避免 AuthenticationFailedException : Too many login attempts?