2016-12-24 14 views
0

Я разрабатываю веб-модуль в структуре struts2 и ejb-модуле в eclipse с hibernate как структура ORM.java.lang.ClassNotFoundException: org.hibernate.HibernateException при развертывании EAR

Каждый раз, когда я изменяю модуль ejb, я должен упаковать его в банку и включить его в свой веб-модуль /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(); 

Это, кажется, какой-то вопрос с classloader.Somehow не в состоянии загрузить hibernatecore.jar , Раньше он использовался для работы с одним и тем же набором банок, когда EAR не был на картинке. Я новичок в 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 папке, но успех не был достигнут

ответ

0

Я занимаюсь разработкой веб-модуля в рамках Struts2 и модуле EJB в Затмение с спящим режимом в качестве рамки ORM. Каждый раз, когда я изменяю модуль ejb , я должен упаковать его в банку и включить его в свой веб-каталог /WEB-INF/lib, чтобы запустить все мое приложение.

С плагином Eclipse как WTP у вас не должно быть этой проблемы.

Я также попробовал, включая все банки в EAR Lib папке, но без успеха был достигнут

Если вы поместите JARs в EAR, они должны находиться в папке APP-INF/lib в корне EAR.

Кроме того, вы можете использовать инструмент построения как Maven или Gradle. Это может облегчить вашу работу по упаковке.

 Смежные вопросы

  • Нет связанных вопросов^_^