Long time no struts2, today configuration strut2.2.1, startup encountered a small problem. Recorded.
Tomcat Startup error:
123456789101112131415161718192021222324252627 |
Class: com.opensymphony.xwork2.spring.SpringObjectFactory
File: SpringObjectFactory.java
Method: getClassInstance
Line:
220
- com/opensymphony/xwork2/spring/SpringObjectFactory.java:
220
:-
1
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:
428
)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:
69
)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:
51
)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:
295
)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:
422
)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:
115
)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:
3838
)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:
4488
)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
1045
)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:
785
)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
1045
)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:
443
)
at org.apache.catalina.core.StandardService.start(StandardService.java:
519
)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:
710
)
at org.apache.catalina.startup.Catalina.start(Catalina.java:
581
)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39
)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25
)
at java.lang.reflect.Method.invoke(Method.java:
585
)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:
289
)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:
414
)
Caused by: java.lang.NullPointerException
at com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:
220
)
|
Principle:
View the Strtus-plugin.xml in the Struts2 plug-in Struts2-spring-plugin
123456789101112131415161718 |
<
struts
>
<
bean
type
=
"com.opensymphony.xwork2.ObjectFactory"
name
=
"spring"
class
=
"org.apache.struts2.spring.StrutsSpringObjectFactory"
/>
<!-- Make the Spring object factory the automatic default -->
<
constant
name
=
"struts.objectFactory"
value
=
"spring"
/>
<
constant
name
=
"struts.class.reloading.watchList"
value
=
""
/>
<
constant
name
=
"struts.class.reloading.acceptClasses"
value
=
""
/>
<
constant
name
=
"struts.class.reloading.reloadConfig"
value
=
"false"
/>
<
package
name
=
"spring-default"
>
<
interceptors
>
<
interceptor
name
=
"autowiring" class
=
"com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor"
/>
<
interceptor
name
=
"sessionAutowiring"
class
=
"org.apache.struts2.spring.interceptor.SessionContextAutowiringInterceptor"
/>
</
interceptors
>
</
package
>
</
struts
>
|
Note The following section, indicating that the plug-in was introduced into the project, and that the struts Objectfactory is automatically set to Strutsspringobjectfactory, allowing spring's IOC container to host the struts action. So it caused the startup problem.
123 |
<bean type= "com.opensymphony.xwork2.ObjectFactory" name= "spring" class = "org.apache.struts2.spring.StrutsSpringObjectFactory" /> <!-- Make the Spring object factory the automatic default --> <constant name= "struts.objectFactory" value= "spring" /> |
Struts2 Start Error com/opensymphony/xwork2/spring/springobjectfactory.java:220:-1