转载出处: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启动项之前,否则无任何效果。