【问题标题】:Not able to deploy EAR file无法部署 EAR 文件
【发布时间】:2017-05-09 18:09:19
【问题描述】:

我正在用hibernate作为ORM框架的struts2框架和eclipse中的ejb模块开发一个web模块。 每次修改我的 ejb 模块时,我都必须将其打包到 jar 中并将其包含在我的 web 模块 /WEB-INF/lib 文件夹中,以便运行我的整个应用程序。虽然应用程序以这种方式运行良好,但它确实很耗时。所以我尝试将它们映射到 EAR 模块中。但是当我尝试运行 EAR 模块时。它给出了以下例外情况

2016-12-24 13:23:43,992 ERROR [org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler] (default task-4) Exception occurred during processing request: WFLYEJB0442: Unexpected Error: javax.ejb.EJBException: WFLYEJB0442: Unexpected Error
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:184)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:277)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:327)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:47)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.deployment.processors.StartupAwaitInterceptor.processInvocation(StartupAwaitInterceptor.java:22)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
Caused by: java.lang.NoClassDefFoundError: org/hibernate/HibernateException
    at com.ebs.persistence.dao.UserDao.<clinit>(UserDao.java:16)
    at com.ebs.business.service.UserAuthorisationBusinessService.getUserProfile(UserAuthorisationBusinessService.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.hibernate.HibernateException from [Module "deployment.EBS.ear.EBS-ejb.jar:main" from Service Module Loader]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)
    ... 179 more

下面是我怀疑出现异常的地方

private static SessionFactory sessfct = SessionFactoryGenerator.getSessionFactory();

这似乎是类加载器的一些问题。从早些时候开始,当 EAR 不在图片中时,它可以很好地处理相同的 jar 集。我可能是 EAR 的新手。下面是application.xml的结构

  <module>
    <web>
      <web-uri>EBS-web.war</web-uri>
      <context-root>EBS-web</context-root>
    </web>
  </module>
  <module>
    <ejb>EBS-ejb.jar</ejb>
  </module>

我也尝试在 EAR lib 文件夹中包含所有 jar,但没有成功

【问题讨论】:

    标签: java eclipse hibernate struts2 ejb-3.0


    【解决方案1】:

    您无法部署您的EAR 文件,因为找不到以下类。

    java.lang.ClassNotFoundException: org.hibernate.HibernateException
    

    确保您的服务器 lib 文件夹中有 hibernate 库或打包在您的 EAR lib 存档中。

    【讨论】:

      猜你喜欢
      • 2012-11-15
      • 2012-02-16
      • 2021-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-20
      • 2018-07-26
      • 2016-12-04
      相关资源
      最近更新 更多