java - 如何从应用程序客户端连接远程 EJB 模块

标签 java netbeans jakarta-ee java-ee-6

我在远程 Glassfish 服务器和我的计算机上的应用程序客户端中有一个 EJB 模块。我想从应用程序客户端连接到远程 EJB。

这是我的 EJB 接口(interface):

@Remote
public interface BookEJBRemote
{
    public String getTitle();
}

这是我的 ejb:

@Stateless
public class BookEJB implements BookEJBRemote
{

    @Override
    public String getTitle()
    {
        return "Twenty Thousand Leagues Under the Sea";
    }
}

我有几个问题:

  1. 我可以在远程应用程序客户端中使用依赖注入(inject)来连接到 ejb 吗?如果是这样,我该怎么做才能实现这一目标。我需要在 sun-ejb-jar.xml 和 sun-application-client.xml 中配置吗?换句话说,如果我使用像@EJB BookEJBRemote 书这样的依赖注入(inject);应用程序客户端容器如何知道要注入(inject)什么 ejb?我应该在哪里指定信息?
  2. 如何运行应用程序客户端?我尝试在 glassfish 服务器中运行 package-appclient 以获取 appclient.jar 并将其复制到我的计算机。然后我输入 appclient.jar -client myAppClient.jar 。它没有用。我如何指向目标服务器?
  3. 如果我不能在客户端使用依赖注入(inject),那么我想我必须使用 JNDI 查找。我是否需要在 sun-ejb-jar.xml 或 sun-application-client.xml 中配置 jndi 名称?

无论我如何尝试,我都无法运行应用程序客户端?你们能举一些工作的例子吗?谢谢你的每一个建议和例子?

最佳答案

检查这个tutorial Creating a Java Stand-Alone Client . 基本上你需要

  • 自行设置 JNDI,因为您的客户端无法使用容器环境。
  • 查找远程接口(interface)。
  • 当然,在类路径中包含所需的 jar 文件

关于java - 如何从应用程序客户端连接远程 EJB 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2986993/

相关文章:

java - 使用反射的 javax.servlet.http.Cookie 的 NoSuchMethodException

web-services - ORA-14552 : cannot perform a DDL, 在查询或 DML 中提交或回滚

java - DrJava开关(字符串)问题

java - 如何在spring应用程序中将JDK版本从java版本 "1.8.0_152"升级到jdk-8u211

java - 添加多列图例键 Mapbox JS

git - 如何在 Netbeans 8.2 中显示 .git 文件夹

java - 如何在Netbeans中重构有限范围内的变量名?

java - 是否有可能加速 log4j 或 slf4j 输出(也可能全局关闭它们)?

JPA:实体 X 与其自身具有 OneToMany 关系。如何?

jakarta-ee - Arquillian - ClassNotFound on org.jboss.arquillian.core.api.threading.ExecutorService