2

这可能是我犯的一个愚蠢的错误,但在这里:

我创建了一个名为 XXEar 的企业应用程序项目(我使用的是 Eclipse Indigo)。然后我创建了一个名为 XXEJB 的 EJB 项目,并将其添加到 EAR 成员资格 (XXEar)。同时创建 XXEJBClient 和 XXEJBClient.jar。这样每次我需要与 XXEJB 中的域交互时,我都会使用 XXEJBClient 中定义的接口,只需要将 XXEJBClient.jar 提供给其他项目。最后,我创建了一个名为 XXWeb 的动态 Web 项目。

所以问题是,在我的 XXWeb 中,我有我的 JSP 和 servlet,在 glassfish 中部署了 .ear,我可以通过使用 XXEJBClient 中的接口向数据库添加信息来访问 XXEJB 中的域。像这样:

在 XXEJBClient 中

@Local
public interface UserHandlerLocal {

public void addUser(String name, int NPC);

}

这可行,但如果我想获得一个“用户”对象,它不会让我给出错误

@Local
public interface UserHandlerLocal {

public void addUser(String name, int NPC);

public User getUser(int NPC);

}

项目设置中是否缺少某些内容?


编辑:完成这项工作的一件事是只创建 XXEJB 而没有创建 XXEJBClient 和 XXEJBClient.jar 在编写完域类之后,我创建了 XXEJBClient 并设法将主要操作伪装成 XXWeb。

不幸的是,如果我想向域中添加新类,我不知道如何更新 XXEJBClient.jar。

4

1 回答 1

0

检查 XXEJBClient.jar 是否同时包含 User.class 和 UserHandlerLocal.class。

您需要在客户端和服务器端查看这两个类文件。

并且两个类文件应该完全相同(先编译,然后复制)。如果由于某种原因您编译了两次相同的 java 文件(一次用于服务器端,一次用于客户端),那么您需要将串行版本 id 添加到 java 类:

private static final long serialVersionUID = 1;
于 2013-03-22T18:49:53.373 回答