2013-05-06 78 views
0

我在使用Jboss AS连接独立桌面客户端和ejb时遇到问题。因此,问题是如何在独立客户端中使用swing窗口在java SE中远程调用EJB类?另一方面,我的概念有什么问题吗?从远程独立客户端调用EJB

IMG链接:http://i.imgur.com/ZnmRROU.jpg

+0

将EJB方法作为Web服务使用。 – 2013-05-06 23:13:02

+0

尽管webservices很性感,但RMI仍然有用。我发现从客户端消费的EJB 3非常微不足道。你有什么具体问题? – BevynQ 2013-05-06 23:36:11

+0

您的体系结构图看起来相当标准,您还需要调查您的网络体系结构,非HTTP流量通常会遇到网络权限问题。 – BevynQ 2013-05-06 23:37:43

回答

0

首先,阅读这篇文章EJB invocations from a remote client using JNDI

  1. 你在你的类路径中需要一个叫做“jboss-ejb-client.properties”文件,该文件需要 的基本配置,以connecto到JBoss服务器,例如:

    remote.connectionprovider。 create.options.org.xnio.Options.SSL_ENABLED = false remote.connections = default remote.connection.default.host = localhost remote.connection.default.port = 4447 remote.connection.default.connect.options。 org.xnio.Options.SASL_POLICY_NOANYYMOUS = false

  2. 创建EJB远程代理

    Properties p = new Properties(); 
    p.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming"); 
    final Context context = new InitialContext(p); 
    final String appName = "YOUR APP NAME"; 
    final String moduleName = "YOUR EJB MODULE NAME"; 
    final String distinctName = "DISTINCT NAME"; 
    final String beanName = "Your bean name"; 
    final String viewClassName = ClienteDAORemote.class.getName(); 
    String path = "ejb:" + appName + "/" + moduleName + "/" 
         + distinctName + "/" + beanName + "!" + viewClassName; 
    Object o = context.lookup(path); 
    return (RemoteBean) o; //Cast to your remote interface 
    

您需要:

  1. 与远程接口
  2. 接口在独立的客户端副本的EJB
  3. 我的属性文件用于本地和不安全的连接。

一个示例实现在this file。它连接到一个EJB服务的一个例子aplication,整个回购就像是你的概念:

  1. 与JSF + PrimeFaces
  2. 一个EJB经营业务层中的Web应用程序
  3. JPA与Hibernate
  4. 一个独立客户
  5. EJB Web服务

对不起我的英文不好,欢呼声。

+0

不错的答案,但是我能够像桌面应用程序一样在jboss服务器之外运行此独立客户端吗? 第二件事是关于实体,我的约5,我必须为每个和每个管理数据库做豆,或者我可以全部在一个bean? – Gravian 2013-05-07 14:35:55

+0

是的,在[Repository](https://code.google.com/p/programacion-web-8vo/source/browse/#svn%2Ftrunk%2Fwebstock)中,您可以看到一个客户端,我只测试客户端同一台机器,但是如果你提供了一个密码并且允许jboss从外部收听,那么你应该没有问题。 其次,我建议你为每个实体都有5个实体和一个bean,就像一个DAO,但是你可以在一个bean中拥有所有的方法和所有的逻辑。 干杯 – 2013-05-07 18:41:36