2

Red Hat JBoss Developer Studio 版本:10.2.0.GA 构建 ID:GA-v20161125-1418-B55 构建日期:20161125-1418

我有一个 Maven EAR 项目,其中包含以下单独项目:

war ejb-jar ejb-client(本地接口)

如果我从命令行mvn clean install 在父项目上运行a,我可以毫无问题地将生成的ear 文件部署到jboss eap7。但是,如果我从 IDE 执行 clean/build all,然后在服务器上选择 run-as,我会收到以下错误:

    Caused by: java.lang.IllegalStateException: WFLYEE0042: Failed to 
construct component instance
        Caused by: java.lang.IllegalArgumentException: Can not set 
com.hsntech.hif.eao.OperationsCache field 
com.hsntech.hif.application.HIFManagement.opCache to 
com.hsntech.hif.eao.OperationsCache$$$view8"}}

ejb-client jar 项目包含接口:

@Local
public interface OperationsCache  {

    Map<String, OperationMapping> getOperationsMaps() throws HIFEJBException;

    void resetCache();
}

并且 ejb.jar impelemtation 包含:

@Singleton
@ConcurrencyManagement(ConcurrencyManagementType.CONTAINER)
public class OperationsCacheImpl implements OperationsCache, Observer {

EJB 正在此类的 war 项目中创建:

@Singleton
@Startup
public class HIFManagement implements HIFManagementMBean {

@EJB
private OperationsCache opCache;
4

3 回答 3

0

我的钱用于班级加载问题。让 Eclipse 构建和打包您的应用程序并不能完全避免错误。IDE 将保留其自己的构建说明,即如何将您的应用程序组装成可部署的 .ear 工件。您可以摆弄项目设置/Web 程序集中的设置。我猜如果您将 Eclipse 构建的耳朵与 Maven 构建的耳朵进行比较,模块或库中包含的类会有所不同。
如果您使用 maven ejb 插件,从 ejb-client 模块中过滤掉实现类,那么我认为没有办法在 Eclipse 中获得相同的东西。话虽如此,我认为您实际上并不需要为 ejb-client 提供单独的模块。ear 中的 War 模块可以访问父 ear 模块的 jar 超级模块中包含的所有类。因此,只需将您的 ejb-jar 作为依赖项添加到您的带有 scope 的 war 模块即可provided

于 2017-02-15T08:24:19.260 回答
0

一般建议:无论如何不要从 Eclipse 中执行此操作,由于类加载等原因,它很容易出现随机错误......

但这里有一些可能的提示:

  • 检查您是否在控制台和 Eclipse 中使用相同的 Maven 运行时。一些 Eclipse 发行版附带了一个奇怪的内置版本

  • 检查 Eclipse 是否设置为忽略某些 Maven 插件

  • 检查 JBoss-Deployment 是否通过控制台工作。有一个插件。如果您可以开始工作,您可以使用 Eclipse 中的那个,而不是内置功能。

于 2017-02-20T13:34:43.377 回答
0

我将为您解决所有可能的问题: 1. 在父 pom 中安排模块的顺序:

<modules>
    <module>core-module</module>
    <module>depends-on-core</module>
    <module>depends-on-core2</module>
    <module>depends-on-depends-on-core</module>
</modules>
  1. mvn eclipse:clean不用担心 Developer Studio 是基于 eclipse 的,所以不会有问题。
  2. mvn eclipse:eclipse

  3. 在服务器上运行

于 2017-02-18T19:42:22.097 回答