【问题标题】:Confusion about creating a standalone client for an existing Java enterprise application project?对为现有 Java 企业应用程序项目创建独立客户端感到困惑?
【发布时间】:2015-03-29 14:53:08
【问题描述】:

我有权访问 Java 企业应用程序项目。在这个项目中有一个 EAR 文件,其中包含一个 EJB 项目、一个用于调用 EJB 项目的 Web 服务的动态 Web 项目,最后是一个 Web 客户端项目。 EAR 部署在 JBoss WildFly 应用服务器上。但是,我想为这个项目创建一个使用 JavaFX 的独立客户端。在研究了旧的 S.O.帖子(是的,我在问问题之前阅读了其他帖子,但没有一个足够清楚地解决我的担忧)并且使用谷歌我只能找到过时的例子。我对以下相关主题感到困惑:

1) 为了访问现有 EJB 项目中的类,您是否必须在已在 EJB 项目中的独立客户端应用程序中创建远程接口的副本? (这让我感觉不对)

2) 如果将 EJB 项目添加到客户端的类路径中,这会不会产生编译时错误,因为客户端代码在运行客户端应用程序时将无法访问服务器代码?

3) 每当您创建一个新的 EJB 项目时,Eclipse 都有一个创建 EJB 客户端项目的选项。这会自动在客户端代码中添加远程接口,而不会在服务器端留下远程接口。这可以接受吗?出于争论的原因,如果您想要 Swing 中的客户和 FX 中的客户怎么办?他们都需要使用远程接口,所以我想你必须有一个包含远程接口的项目,然后每个客户端都有一个项目,该项目引用了包含这些接口的项目。

【问题讨论】:

    标签: java eclipse jakarta-ee jboss


    【解决方案1】:

    我不是 JavaFX 大佬,所以我不会在这里回答所有问题。但是,1.) 是一个相当简单的解决方法。

    将你的接口从你的 EJB jar 中拉到它们自己的 jar 中,并将它作为依赖项添加到 EJB 和客户端。如果您使用的是 Maven 或 Gradle(如果不是,您应该问自己为什么不使用),您可以在同一个项目中包含构建这个“API”jar,这样您就不会感到烦恼将这些接口视为一个单独的项目。例如,在 Maven 中,一种常见的方法是为您的 EJB 内容设置两个模块:“somethingsomething-api”和“somethingsomething-ejb”。 Maven 的多模块功能允许您将这些项目一起构建但单独打包,这在您只想将接口和 bean 与另一个项目(如客户端)捆绑时很重要,但又不想/不能拥有所有您的 EJB jar 中的其他好东西被拉入您的客户端等。

    【讨论】:

    • 我要弄清楚如何配置 Maven 并走这条路。感谢您的确认。
    猜你喜欢
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多