今天看了struts实现Ioc,所以写个例子,没想到。写好后,启动时出现
java.lang.NoClassDefFoundError: org/springframework/core/SmartClassLoader
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
然后在lib下,其他的sping包都是2.5.3的,就只有sping-core是2.0.8的,打开包,还真是找不到这个SmartClassLoader接口
后来搜了一下,原来是sping-core需要更换2.5.3的版本。
提示:可以从struts-2.1.6-all.zip包的apps目录中的struts2-showcase-2.1.6.war包中的WEB-INF/lib目录中找到spring-core-2.5.3.jar包。加入项目。
解决完这个问题之后,新的问题出来了,struts.properties不能正常加载
严重: Exception starting filter struts2
Unable to load configuration. - [unknown location]
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
Caused by: Cannot locate the chosen ObjectFactory implementation: spring - [unknown location]
at org.apache.struts2.config.BeanSelectionProvider.alias(BeanSelectionProvider.java:287)
是struts.properties文件出现问题。我在里面配置了struts.objectFactory=spring
反复查看没有问题,后来解决掉,缺少jar包
加入struts2-spring-plugin-2.0.6.jar包,就没有问题