org.hibernate.LazyInitializationException: could not initialize proxy [beans.Student#1] - no Session

转载出处:https://www.bilibili.com/video/BV1uT4y1g7Qo?p=431&spm_id_from=pageDriver

分析:Action中调用Service的业务,Service找到Dao执行具体的数据操作,load()延时加载返回一个代理对象模型($)。此后Action对层层返回的代理对象进行一系列操作后发现,该代理对象仅是一个躯壳。于是Action又开始向下层层寻找,直到Dao层时发现load()的执行未伴随事务环境。

我们借用AOP思想将事务织入给具体的Service层业务逻辑时,单个业务逻辑会开辟单个事务对其进行处理,当业务逻辑处理完成后事务随即关闭 / 提交,此时的Session便失去了事务环境。

简言之即Service将代理对象返回给Action的同时,Session会被连带关闭,因此出现no Session异常

在这里插入图片描述

[ERROR][2021-04-19 14:59:33] org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler 42 Exception occurred during processing request: could not initialize proxy [beans.Student#1] - no Session
org.hibernate.LazyInitializationException: could not initialize proxy [beans.Student#1] - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:170)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:310)
at org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor.intercept(ByteBuddyInterceptor.java:45)
at org.hibernate.proxy.ProxyConfiguration I n t e r c e p t o r D i s p a t c h e r . i n t e r c e p t ( P r o x y C o n f i g u r a t i o n . j a v a : 95 ) a t b e a n s . S t u d e n t InterceptorDispatcher.intercept(ProxyConfiguration.java:95) at beans.Student InterceptorDispatcher.intercept(ProxyConfiguration.java:95)atbeans.StudentHibernateProxy$reyca7m9.getStuName(Unknown Source)
at actions.QueryAction.execute(QueryAction.java:25)
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)
at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:897)
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1299)
at ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:68)
at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethodWithDebugInfo(XWorkMethodAccessor.java:117)
at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethod(XWorkMethodAccessor.java:108)
at ognl.OgnlRuntime.callMethod(OgnlRuntime.java:1375)
at ognl.ASTMethod.getValueBody(ASTMethod.java:91)
at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
at ognl.SimpleNode.getValue(SimpleNode.java:258)
at ognl.Ognl.getValue(Ognl.java:470)
at ognl.Ognl.getValue(Ognl.java:434)
at com.opensymphony.xwork2.ognl.OgnlUtil 3. e x e c u t e ( O g n l U t i l . j a v a : 398 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. o g n l . O g n l U t i l . c o m p i l e A n d E x e c u t e M e t h o d ( O g n l U t i l . j a v a : 450 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. o g n l . O g n l U t i l . c a l l M e t h o d ( O g n l U t i l . j a v a : 396 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e A c t i o n ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 430 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e A c t i o n O n l y ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 290 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 251 ) a t o r g . a p a c h e . s t r u t s 2. i n t e r c e p t o r . D e p r e c a t i o n I n t e r c e p t o r . i n t e r c e p t ( D e p r e c a t i o n I n t e r c e p t o r . j a v a : 41 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t o r g . a p a c h e . s t r u t s 2. i n t e r c e p t o r . d e b u g g i n g . D e b u g g i n g I n t e r c e p t o r . i n t e r c e p t ( D e b u g g i n g I n t e r c e p t o r . j a v a : 256 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. i n t e r c e p t o r . D e f a u l t W o r k f l o w I n t e r c e p t o r . d o I n t e r c e p t ( D e f a u l t W o r k f l o w I n t e r c e p t o r . j a v a : 168 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. i n t e r c e p t o r . M e t h o d F i l t e r I n t e r c e p t o r . i n t e r c e p t ( M e t h o d F i l t e r I n t e r c e p t o r . j a v a : 98 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. v a l i d a t o r . V a l i d a t i o n I n t e r c e p t o r . d o I n t e r c e p t ( V a l i d a t i o n I n t e r c e p t o r . j a v a : 265 ) a t o r g . a p a c h e . s t r u t s 2. i n t e r c e p t o r . v a l i d a t i o n . A n n o t a t i o n V a l i d a t i o n I n t e r c e p t o r . d o I n t e r c e p t ( A n n o t a t i o n V a l i d a t i o n I n t e r c e p t o r . j a v a : 76 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. i n t e r c e p t o r . M e t h o d F i l t e r I n t e r c e p t o r . i n t e r c e p t ( M e t h o d F i l t e r I n t e r c e p t o r . j a v a : 98 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. i n t e r c e p t o r . C o n v e r s i o n E r r o r I n t e r c e p t o r . i n t e r c e p t ( C o n v e r s i o n E r r o r I n t e r c e p t o r . j a v a : 138 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. i n t e r c e p t o r . P a r a m e t e r s I n t e r c e p t o r . d o I n t e r c e p t ( P a r a m e t e r s I n t e r c e p t o r . j a v a : 229 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. i n t e r c e p t o r . M e t h o d F i l t e r I n t e r c e p t o r . i n t e r c e p t ( M e t h o d F i l t e r I n t e r c e p t o r . j a v a : 98 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. i n t e r c e p t o r . P a r a m e t e r s I n t e r c e p t o r . d o I n t e r c e p t ( P a r a m e t e r s I n t e r c e p t o r . j a v a : 229 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. i n t e r c e p t o r . M e t h o d F i l t e r I n t e r c e p t o r . i n t e r c e p t ( M e t h o d F i l t e r I n t e r c e p t o r . j a v a : 98 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. i n t e r c e p t o r . S t a t i c P a r a m e t e r s I n t e r c e p t o r . i n t e r c e p t ( S t a t i c P a r a m e t e r s I n t e r c e p t o r . j a v a : 191 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t o r g . a p a c h e . s t r u t s 2. i n t e r c e p t o r . M u l t i s e l e c t I n t e r c e p t o r . i n t e r c e p t ( M u l t i s e l e c t I n t e r c e p t o r . j a v a : 73 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t o r g . a p a c h e . s t r u t s 2. i n t e r c e p t o r . D a t e T e x t F i e l d I n t e r c e p t o r . i n t e r c e p t ( D a t e T e x t F i e l d I n t e r c e p t o r . j a v a : 125 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t o r g . a p a c h e . s t r u t s 2. i n t e r c e p t o r . C h e c k b o x I n t e r c e p t o r . i n t e r c e p t ( C h e c k b o x I n t e r c e p t o r . j a v a : 91 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t o r g . a p a c h e . s t r u t s 2. i n t e r c e p t o r . F i l e U p l o a d I n t e r c e p t o r . i n t e r c e p t ( F i l e U p l o a d I n t e r c e p t o r . j a v a : 253 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. i n t e r c e p t o r . M o d e l D r i v e n I n t e r c e p t o r . i n t e r c e p t ( M o d e l D r i v e n I n t e r c e p t o r . j a v a : 100 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. i n t e r c e p t o r . S c o p e d M o d e l D r i v e n I n t e r c e p t o r . i n t e r c e p t ( S c o p e d M o d e l D r i v e n I n t e r c e p t o r . j a v a : 141 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. i n t e r c e p t o r . C h a i n i n g I n t e r c e p t o r . i n t e r c e p t ( C h a i n i n g I n t e r c e p t o r . j a v a : 145 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. i n t e r c e p t o r . P r e p a r e I n t e r c e p t o r . d o I n t e r c e p t ( P r e p a r e I n t e r c e p t o r . j a v a : 171 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. i n t e r c e p t o r . M e t h o d F i l t e r I n t e r c e p t o r . i n t e r c e p t ( M e t h o d F i l t e r I n t e r c e p t o r . j a v a : 98 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. i n t e r c e p t o r . I 18 n I n t e r c e p t o r . i n t e r c e p t ( I 18 n I n t e r c e p t o r . j a v a : 140 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t o r g . a p a c h e . s t r u t s 2. i n t e r c e p t o r . S e r v l e t C o n f i g I n t e r c e p t o r . i n t e r c e p t ( S e r v l e t C o n f i g I n t e r c e p t o r . j a v a : 164 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. i n t e r c e p t o r . A l i a s I n t e r c e p t o r . i n t e r c e p t ( A l i a s I n t e r c e p t o r . j a v a : 193 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. i n t e r c e p t o r . E x c e p t i o n M a p p i n g I n t e r c e p t o r . i n t e r c e p t ( E x c e p t i o n M a p p i n g I n t e r c e p t o r . j a v a : 189 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. D e f a u l t A c t i o n I n v o c a t i o n . i n v o k e ( D e f a u l t A c t i o n I n v o c a t i o n . j a v a : 245 ) a t o r g . a p a c h e . s t r u t s 2. i m p l . S t r u t s A c t i o n P r o x y . e x e c u t e ( S t r u t s A c t i o n P r o x y . j a v a : 54 ) a t o r g . a p a c h e . s t r u t s 2. d i s p a t c h e r . D i s p a t c h e r . s e r v i c e A c t i o n ( D i s p a t c h e r . j a v a : 575 ) a t o r g . a p a c h e . s t r u t s 2. d i s p a t c h e r . n g . E x e c u t e O p e r a t i o n s . e x e c u t e A c t i o n ( E x e c u t e O p e r a t i o n s . j a v a : 81 ) a t o r g . a p a c h e . s t r u t s 2. d i s p a t c h e r . n g . f i l t e r . S t r u t s P r e p a r e A n d E x e c u t e F i l t e r . d o F i l t e r ( S t r u t s P r e p a r e A n d E x e c u t e F i l t e r . j a v a : 99 ) a t o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . i n t e r n a l D o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 193 ) a t o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . d o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 166 ) a t o r g . a p a c h e . c a t a l i n a . c o r e . S t a n d a r d W r a p p e r V a l v e . i n v o k e ( S t a n d a r d W r a p p e r V a l v e . j a v a : 202 ) a t o r g . a p a c h e . c a t a l i n a . c o r e . S t a n d a r d C o n t e x t V a l v e . i n v o k e ( S t a n d a r d C o n t e x t V a l v e . j a v a : 96 ) a t o r g . a p a c h e . c a t a l i n a . a u t h e n t i c a t o r . A u t h e n t i c a t o r B a s e . i n v o k e ( A u t h e n t i c a t o r B a s e . j a v a : 541 ) a t o r g . a p a c h e . c a t a l i n a . c o r e . S t a n d a r d H o s t V a l v e . i n v o k e ( S t a n d a r d H o s t V a l v e . j a v a : 139 ) a t o r g . a p a c h e . c a t a l i n a . v a l v e s . E r r o r R e p o r t V a l v e . i n v o k e ( E r r o r R e p o r t V a l v e . j a v a : 92 ) a t o r g . a p a c h e . c a t a l i n a . v a l v e s . A b s t r a c t A c c e s s L o g V a l v e . i n v o k e ( A b s t r a c t A c c e s s L o g V a l v e . j a v a : 690 ) a t o r g . a p a c h e . c a t a l i n a . c o r e . S t a n d a r d E n g i n e V a l v e . i n v o k e ( S t a n d a r d E n g i n e V a l v e . j a v a : 74 ) a t o r g . a p a c h e . c a t a l i n a . c o n n e c t o r . C o y o t e A d a p t e r . s e r v i c e ( C o y o t e A d a p t e r . j a v a : 343 ) a t o r g . a p a c h e . c o y o t e . h t t p 11. H t t p 11 P r o c e s s o r . s e r v i c e ( H t t p 11 P r o c e s s o r . j a v a : 373 ) a t o r g . a p a c h e . c o y o t e . A b s t r a c t P r o c e s s o r L i g h t . p r o c e s s ( A b s t r a c t P r o c e s s o r L i g h t . j a v a : 65 ) a t o r g . a p a c h e . c o y o t e . A b s t r a c t P r o t o c o l 3.execute(OgnlUtil.java:398) at com.opensymphony.xwork2.ognl.OgnlUtil.compileAndExecuteMethod(OgnlUtil.java:450) at com.opensymphony.xwork2.ognl.OgnlUtil.callMethod(OgnlUtil.java:396) at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:430) at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:290) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251) at org.apache.struts2.interceptor.DeprecationInterceptor.intercept(DeprecationInterceptor.java:41) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:168) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265) at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:76) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at org.apache.struts2.interceptor.DateTextFieldInterceptor.intercept(DateTextFieldInterceptor.java:125) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:253) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:140) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:575) at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:81) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol 3.execute(OgnlUtil.java:398)atcom.opensymphony.xwork2.ognl.OgnlUtil.compileAndExecuteMethod(OgnlUtil.java:450)atcom.opensymphony.xwork2.ognl.OgnlUtil.callMethod(OgnlUtil.java:396)atcom.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:430)atcom.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:290)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)atorg.apache.struts2.interceptor.DeprecationInterceptor.intercept(DeprecationInterceptor.java:41)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atorg.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atcom.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:168)atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atcom.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)atorg.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:76)atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atcom.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atcom.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229)atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atcom.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229)atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atcom.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atorg.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atorg.apache.struts2.interceptor.DateTextFieldInterceptor.intercept(DateTextFieldInterceptor.java:125)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atorg.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atorg.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:253)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atcom.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atcom.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atcom.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atcom.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atcom.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:140)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atorg.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atcom.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atcom.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)atorg.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)atorg.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:575)atorg.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:81)atorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)atorg.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)atorg.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)atorg.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)atorg.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)atorg.apache.coyote.AbstractProtocolConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint S o c k e t P r o c e s s o r . d o R u n ( N i o E n d p o i n t . j a v a : 1589 ) a t o r g . a p a c h e . t o m c a t . u t i l . n e t . S o c k e t P r o c e s s o r B a s e . r u n ( S o c k e t P r o c e s s o r B a s e . j a v a : 49 ) a t j a v a . u t i l . c o n c u r r e n t . T h r e a d P o o l E x e c u t o r . r u n W o r k e r ( U n k n o w n S o u r c e ) a t j a v a . u t i l . c o n c u r r e n t . T h r e a d P o o l E x e c u t o r SocketProcessor.doRun(NioEndpoint.java:1589) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor SocketProcessor.doRun(NioEndpoint.java:1589)atorg.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)atjava.util.concurrent.ThreadPoolExecutor.runWorker(UnknownSource)atjava.util.concurrent.ThreadPoolExecutorWorker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

在这里插入图片描述
应对措施:在web.xml中配置OpenSessionInViewFilter

<!-- 在视图过滤器中打开会话 -->
<filter>
	<filter-name>openSessionInView</filter-name>
	<filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
	<filter-name>openSessionInView</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

可能会遇到的问题:
在这里插入图片描述
在这里插入图片描述
源码中指定了固定名称,我们也可以在web.xml对名称进行配置
在这里插入图片描述
在这里插入图片描述
特别注意:OpenSessionInViewFilter必须置于Struts2启动项之前,否则无任何效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值