java - 我如何访问在单独的 Web 应用程序中实现远程接口(interface)的 EJB?

标签 java web-applications jakarta-ee ejb-3.0 module

我正在使用 Netbeans 6.8 和 Glassfish v3.0。

我创建了一个 ejb 模块并从数据库创建了实体类,然后创建了带有远程接口(interface)的无状态 session bean。说例如。

 @Remote
public interface customerRemote{
    public void add(String name, String address);
    public Customer find(Integer id);
}

@Stateless
public class customerBean implements customerRemote{
    //implementations of methods
}

然后我创建了一个新的网络应用程序。但是现在我如何在我的 web 应用程序中访问远程 ejb。我可以用 jndi 名称查找一个 bean,但我想知道的是,它将返回什么类型的对象?我如何在 customerRemote 中进行类型转换?我的 Web 应用程序中没有任何名为 customerRemote 的类。那么,我该怎么做?另外,实体类 Customer 呢?我的 Web 应用程序中也没有名为 Customer 的类。所有 ejb 和实体类都在单独的 ejb 模块中。请帮助我:(

最佳答案

How do i typecast it in customerRemote? I don't have any class named customerRemote in my web application. So, how do i do it? Also, what about the entity class Customer? There is no such class named Customer in my web application also. All ejb's and entity classes are in separate ejb module.

您的 Web 应用程序必须依赖于包含这些类和接口(interface)的库。然后您将能够像往常一样导入接口(interface)和类型转换。您有两种方法:

  • 全部在一个 jar 里。这似乎就是你现在所拥有的。在这种情况下,您的网络应用需要依赖于此 jar。

  • 拆分 API 和实现。更好的方法是将 ejb 模块分成两个 jar:一个 jar myModule-api 包含属于模块 API 的类。在这种情况下,它将是 customerRemoteCustomer。另一个 jar myModule-impl 包含实现(当然,实现取决于 API)。然后在您的网络应用程序中,您只需要依赖 myModule-api 中的 API。

关于java - 我如何访问在单独的 Web 应用程序中实现远程接口(interface)的 EJB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2417626/

相关文章:

java - SOAP 头认证

security - 强制字母数字用户 ID

go - 如何在 Go 中执行状态码为 500 的模板?

java - 使用 Java 检索 MongoDb 嵌套文档的所有键

java - 为什么 json 以这种奇怪的方式表现?

python - 存储 ngram 模型 python

java - 从 JSON 对象中提取数组

java - GMap 信息窗口不显示

java - 什么是 Java 中的对等类?

java - JMeter 根据先前的响应创建 HTTP 请求正文