2010-06-07 105 views
12

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

这里是我的EJB接口:

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

无论我如何尝试,我从来没有设法运行应用程序客户端?你们可以举一些工作的例子吗?并感谢你的每一个建议和例子?

+0

你的问题是在[在客户@EJB注释]部分回答了所需的jar文件(http://stackoverflow.com/questions/848675):GlassFish支持的管理独立的客户端应用程序,如果您通过['bin/appclient -client myprogram.jar'](http://www.ensode.net/glassfish_rich_ejb_clients.html)运行它们。客户端必须在['jndi.properties'](http://www.codeproject.com/Articles/42394/How-to-create-JBoss-ejb3-session-bean-standalone-c)和说明中指定JNDI设置['application-client.xml'](http://download.oracle.com/docs/cd/B15897_01/web.1012/b15505/access.htm#sthref238)中的服务。 – 2011-11-17 00:35:40

+0

我同意这个问题。我在网上阅读的每一篇文章都只显示了如何在netbeans中运行应用程序客户端。似乎没有任何解释如何在netbeans之外运行应用程序客户端。 +1。 – w0051977 2016-10-08 19:57:23

回答

3

检查此tutorial Creating a Java Stand-Alone Client。 基本上你需要

  • 自己设置JNDI,因为你的客户端不能使用容器环境。
  • 查找远程接口。
  • 当然,包括在你的classpath
+0

你引用的教程是相当古老的。它针对使用NetBeans 6.1的人们。这是几年前发布的。 – vkraemer 2010-06-07 05:55:45

+0

@vkraemer这篇文章说它已经用6.7.1进行了测试 – stacker 2010-06-07 06:05:12