学习webwork与spring集成,出现莫名错误!

阅读更多

今天学习了webwork与spring的集成,出现的莫名错误。

webwork与spring集成一共有三种方法,1.External-Ref ,2.SpringObjectFactory ,3.ActionAutowiringInterceptor 。第三种方法比较简洁,但是在使用的时候出现问题。

第一步:配置web.xml

xml 代码
  1. <listener>       
  2.         <listener-class>org.springframwork.web.context.ContextLoaderListenerlistener-class>       
  3. listener>   

修改webwork.properties加入
webwork.objectFactory = spring

 
 第二步配置xwork.xml里面的拦截器

xml 代码
  1. <interceptor name="autowire" class="com.opensymphony.xwork.spring.interceptor.ActionAutowiringInterceptor">       
  2.     <param name="autowireStrategy">       
  3. @org.springframework.beans.factory.config.AutowireCapableBeanFactory@AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE       
  4.     param>       
  5.   interceptor>      

     

按照上面的步骤配置完后,运行程序时出现以下警告:

java 代码
  1. 警告: Caught OgnlException while setting property 'autowireStrategy' on type 'com.opensymphony.xwork.spring.interceptor.ActionAutowiringInterceptor'.   
  2. java.lang.NoSuchMethodException: setAutowireStrategy(java.lang.String)   
  3.  at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:783)   
  4.  at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:937)   
  5.  at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:76)   
  6.  at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:132)   
  7.  at com.opensymphony.xwork.util.OgnlValueStack$ObjectAccessor.setProperty(OgnlValueStack.java:64)   
  8.  at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1629)   
  9.  at ognl.ASTProperty.setValueBody(ASTProperty.java:105)   
  10.  at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)   
  11.  at ognl.SimpleNode.setValue(SimpleNode.java:246)   
  12.  at ognl.Ognl.setValue(Ognl.java:476)   
  13.  at com.opensymphony.xwork.util.OgnlUtil.setValue(OgnlUtil.java:186)   
  14.  at com.opensymphony.xwork.util.OgnlUtil.internalSetProperty(OgnlUtil.java:360)   
  15.  at com.opensymphony.xwork.util.OgnlUtil.setProperties(OgnlUtil.java:76)   
  16.  at com.opensymphony.xwork.util.OgnlUtil.setProperties(OgnlUtil.java:103)   
  17.  at com.opensymphony.xwork.util.OgnlUtil.setProperties(OgnlUtil.java:90)   
  18.  at com.opensymphony.xwork.ObjectFactory.buildInterceptor(ObjectFactory.java:150)   
  19.  at com.opensymphony.xwork.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:48)   
  20.  at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:702)   
  21.  at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:569)   
  22.  at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadInterceptorStacks(XmlConfigurationProvider.java:582)   
  23.  at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadInterceptors(XmlConfigurationProvider.java:603)   
  24.  at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:204)   
  25.  at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadConfigurationFile(XmlConfigurationProvider.java:676)   
  26.  at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:91)   
  27.  at com.opensymphony.xwork.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:85)   
  28.  at com.opensymphony.xwork.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:54)   
  29.  at com.opensymphony.xwork.DefaultActionProxy.(DefaultActionProxy.java:57)   
  30.  at com.opensymphony.xwork.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:46)   
  31.  at com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:216)   
  32.  at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:111)   
  33.  at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)   
  34.  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)   
  35.  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)   
  36.  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)   
  37.  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)   
  38.  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)   
  39.  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)   
  40.  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)   
  41.  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)   
  42.  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)   
  43.  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)   
  44.  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)   
  45.  at java.lang.Thread.run(Thread.java:595)   
  46. ********************  

不知道是什么原因,web容器启动时,日志显示webwork与spring集成成功,我使用的包是webwork2.2.4,spring是2.0.4,服务器是tomcat6.0。

希望有遇到过这样问题的同志给予解答!

你可能感兴趣的:(Webwork,Spring,Java,Apache,360)