Java 从远程独立客户端调用EJB

Java 从远程独立客户端调用EJB,java,jakarta-ee,jboss,ejb,Java,Jakarta Ee,Jboss,Ejb,我在Jboss AS上用ejb连接独立桌面客户端时遇到问题。所以问题是如何在JavaSE和SwingWindows中从独立客户端远程调用EJB类?另一方面,我的观念有问题吗 img链接:首先,阅读本文 在类路径中需要一个名为“jboss ejb client.properties”的文件,该文件需要 连接到jboss服务器的基本配置,例如: remote.connectionprovider.create.options.org.xnio.options.SSL\u ENABLED=false

我在Jboss AS上用ejb连接独立桌面客户端时遇到问题。所以问题是如何在JavaSE和SwingWindows中从独立客户端远程调用EJB类?另一方面,我的观念有问题吗

img链接:

首先,阅读本文

  • 在类路径中需要一个名为“jboss ejb client.properties”的文件,该文件需要 连接到jboss服务器的基本配置,例如:

    remote.connectionprovider.create.options.org.xnio.options.SSL\u ENABLED=false remote.connections=默认值 remote.connection.default.host=localhost remote.connection.default.port=4447 remote.connection.default.connect.options.org.xnio.options.SASL\u POLICY\u NOANONYMOUS=false

  • 创建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
    
  • 你需要:

  • 具有远程接口的EJB
  • 独立客户端中接口的副本
  • 我的属性文件用于本地和不安全连接
  • 中提供了一个示例实现。这是一个连接EJB服务的示例应用程序,整个repo就像您的概念:

  • 使用JSF+PrimeFaces的web应用程序
  • EJB业务层
  • 带hibernate的JPA
  • 独立客户端
  • ejbweb服务

  • 抱歉我的英语不好,干杯。

    将EJB方法作为Web服务使用。虽然Web服务很性感,但RMI仍然很有用。我发现从客户端使用EJB3相当简单。您有哪些具体问题?您的架构图看起来相当标准,您还需要调查您的网络架构,非http流量通常会在网络权限方面出现问题。回答很好,但我是否能够像桌面应用程序一样在jboss服务器外运行此独立客户端?第二件事是关于实体,我有大约5个,我必须为每个实体制作bean,一个用于管理数据库,还是我可以在一个bean中创建所有的bean?是的,在中,你可以看到一个客户端,我只在同一台机器上测试客户端,但是如果你提供密码并允许jboss从外部侦听,那么你应该不会有问题。其次,我建议您为每个实体拥有5个实体和一个bean,就像一个DAO一样,但是您可以在一个bean中拥有所有方法和所有逻辑。干杯