我在远程 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";
}
}
我有几个问题:
- 我可以在远程应用程序客户端中使用依赖注入(inject)来连接到 ejb 吗?如果是这样,我该怎么做才能实现这一目标。我需要在 sun-ejb-jar.xml 和 sun-application-client.xml 中配置吗?换句话说,如果我使用像@EJB BookEJBRemote 书这样的依赖注入(inject);应用程序客户端容器如何知道要注入(inject)什么 ejb?我应该在哪里指定信息?
- 如何运行应用程序客户端?我尝试在 glassfish 服务器中运行 package-appclient 以获取 appclient.jar 并将其复制到我的计算机。然后我输入 appclient.jar -client myAppClient.jar 。它没有用。我如何指向目标服务器?
- 如果我不能在客户端使用依赖注入(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/