Я хочу использовать AspectJ для временного соткания JAR сервисного уровня, который содержит классы домена DAO & и сеансы и транзакционные бобы, которые совместно используются несколькими веб-проектами внутри EAR, работающими на WildFly (JBoss), но я получаю исключение «No session found for current thread» всякий раз, когда я пытаюсь использовать сеанс hibernate.AspectJ и общий контекст Spring внутри EAR на WildFly 9 с использованием hibernate - «Нет сеанса для текущего потока»!
Вот структура моего EAR:
testapp.ear
|
|------ /lib/testapp-service.jar + all required libraries as I'm using skinny WARs.
|
|------ testapp.web1.war
|
|------ testapp-web2.war
Я использую следующий технологий:
WildFly 9
Hibernate 4.1.8
Spring 3.1.1
Maven 4
Spring конфигурация:
Я использую Спринг parentContextKey context-param для загрузки ша красный контекст согласно весенней документации. Я использую AspectJ для загрузки времени моего менеджера транзакций.
Вот ссылка на мой источник: https://github.com/Nigel-funguru/testapp.git
Примечание: Если удалить время загрузки AspectJ ткачество из пружинной конфигурации, эта конфигурация делает работу.
Вот мой трассировки стека:
Caused by: org.hibernate.HibernateException: No Session found for current thread
at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:97)
at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:978)
at com.testapp.db.hibernate.EmployeeHibernateRepository.findAll(EmployeeHibernateRepository.java:31)
at com.testapp.service.impl.EmployeeManagerImpl.findAll(EmployeeManagerImpl.java:34)
at com.testapp.mvc.HomeController.showHomePage(HomeController.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
... 30 more
Для полной трассировки стека смотрите: http://pastebin.ca/3090734
Любая помощь будет оценена.
Hi Nigel, просто любопытно, это сработает для вас? –