今天学习了webwork与spring的集成,出现的莫名错误。
webwork与spring集成一共有三种方法,1.External-Ref ,2.SpringObjectFactory ,3.ActionAutowiringInterceptor 。第三种方法比较简洁,但是在使用的时候出现问题。
第一步:配置web.xml
xml 代码
- <listener>
- <listener-class>org.springframwork.web.context.ContextLoaderListener</listener-class>
- </listener>
修改webwork.properties加入
webwork.objectFactory = spring
第二步配置xwork.xml里面的拦截器
xml 代码
- <interceptor name="autowire" class="com.opensymphony.xwork.spring.interceptor.ActionAutowiringInterceptor">
- <param name="autowireStrategy">
- @org.springframework.beans.factory.config.AutowireCapableBeanFactory@AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE
- </param>
- </interceptor>
按照上面的步骤配置完后,运行程序时出现以下警告:
java 代码
- 警告: Caught OgnlException while setting property 'autowireStrategy' on type 'com.opensymphony.xwork.spring.interceptor.ActionAutowiringInterceptor'.
- java.lang.NoSuchMethodException: setAutowireStrategy(java.lang.String)
- at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:783)
- at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:937)
- at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:76)
- at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:132)
- at com.opensymphony.xwork.util.OgnlValueStack$ObjectAccessor.setProperty(OgnlValueStack.java:64)
- at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1629)
- at ognl.ASTProperty.setValueBody(ASTProperty.java:105)
- at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
- at ognl.SimpleNode.setValue(SimpleNode.java:246)
- at ognl.Ognl.setValue(Ognl.java:476)
- at com.opensymphony.xwork.util.OgnlUtil.setValue(OgnlUtil.java:186)
- at com.opensymphony.xwork.util.OgnlUtil.internalSetProperty(OgnlUtil.java:360)
- at com.opensymphony.xwork.util.OgnlUtil.setProperties(OgnlUtil.java:76)
- at com.opensymphony.xwork.util.OgnlUtil.setProperties(OgnlUtil.java:103)
- at com.opensymphony.xwork.util.OgnlUtil.setProperties(OgnlUtil.java:90)
- at com.opensymphony.xwork.ObjectFactory.buildInterceptor(ObjectFactory.java:150)
- at com.opensymphony.xwork.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:48)
- at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:702)
- at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:569)
- at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadInterceptorStacks(XmlConfigurationProvider.java:582)
- at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadInterceptors(XmlConfigurationProvider.java:603)
- at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:204)
- at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadConfigurationFile(XmlConfigurationProvider.java:676)
- at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:91)
- at com.opensymphony.xwork.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:85)
- at com.opensymphony.xwork.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:54)
- at com.opensymphony.xwork.DefaultActionProxy.(DefaultActionProxy.java:57)
- at com.opensymphony.xwork.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:46)
- at com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:216)
- at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:111)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
- at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
- at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
- at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
- at java.lang.Thread.run(Thread.java:595)
- ********************
不知道是什么原因,web容器启动时,日志显示webwork与spring集成成功,我使用的包是webwork2.2.4,spring是2.0.4,服务器是tomcat6.0。
希望有遇到过这样问题的同志给予解答!
分享到:
相关推荐
#### 集成Spring与WebWork于Web容器 在`web.xml`中,需配置Spring的`ContextLoaderListener`和WebWork的`ResolverSetupServletContextListener`,确保在Web应用启动时初始化Spring的ApplicationContext,并使其与...
WebWork2.1 与 Spring 框架的集成是一个常见的技术实践,目的是利用 Spring 提供的依赖注入(DI)和面向切面编程(AOP)能力,以及 WebWork 的优秀动作层管理,来构建更加灵活和解耦的Java Web应用。在集成过程中,...
SSH(Spring、Struts、Hibernate)或WSH(Webwork、Spring、Hibernate)集成是Java企业级应用开发的常见实践,旨在构建高效、模块化且易于维护的系统。 首先,Webwork是Action-based的MVC框架,它的核心在于Action...
`spring-xwork-integration.jar`可能包含Spring与WebWork之间的桥接代码,用于协调两者之间的通信,例如处理Action的生命周期管理和服务注入。`webwork2-spring.jar`则可能包含WebWork框架内针对Spring的适配器和...
Spring 和 WebWork 的集成是将 Spring 框架的依赖注入和管理能力与 WebWork(现在是 Struts 2 的一部分)的 MVC 框架相结合的过程。这种集成允许开发者利用 Spring 提供的服务,如数据访问对象(DAO)、业务服务以及...
整合WebWork和Spring的主要目的是将WebWork的MVC能力和Spring的IoC/DI以及企业服务集成到一个应用中。这样,开发者可以利用WebWork的动态控制层与Spring的强大持久层和事务管理功能,实现更加高效的开发流程。 在这...
WebWork、Spring 和 iBATIS 是三个非常重要的Java Web开发框架,它们的组合为初学者提供了丰富的学习资源。WebWork 是一个MVC(Model-View-Controller)框架,Spring 是一个全面的后端开发框架,而 iBATIS 是一个...
总的来说,《WebWork.Spring.Hibernate整合开发网络书城》的学习,不仅涵盖了这三个框架的基本用法,还包括了它们如何协同工作,构建出高效、稳定、易于维护的企业级Web应用。通过深入理解和实践,开发者能够提升...
Spring与Hibernate的整合则主要体现在数据访问层。Spring提供了HibernateTemplate或SessionFactoryBean等工具,使得开发者无需直接操作Hibernate Session,降低了出错的可能性。通过Spring的事务管理,可以轻松地...
【WebWork+Spring+Hibernate整合开发】是一种常见的Java Web应用程序架构模式,用于构建高效、可扩展的业务系统。WebWork是Action-based MVC框架,Spring是一个全面的企业级应用框架,而Hibernate则是流行的对象关系...
【搭建WEBWORK+SPRING+HIBERNATE框架】是一个集成三大流行开源框架的过程,用于构建高效、可扩展的企业级Web应用。以下是详细的步骤和知识点: 1. **开发环境配置**: - 使用MyEclipse 5.5.1 GA作为开发工具,它...
webwork+spring+hibernate整合开发网络书城 第5讲
Spring MVC是Spring框架的一部分,专门用于处理Web应用的请求响应,与WebWork在某些功能上有重叠,但在实际整合中,两者可以协同工作,WebWork负责前端控制器,Spring负责更复杂的业务逻辑处理。 Hibernate是Java...
1. **Spring与WebWork集成**:讲解如何在WebWork中配置Spring,使得Spring能够作为依赖注入容器,管理WebWork中的Action和其他组件。 2. **Hibernate配置**:详细解释如何配置Hibernate,包括hibernate.cfg.xml文件...
3. **WebWork-Spring集成**:通过Spring的WebWork插件,可以将WebWork的动作类作为Spring的Bean来管理,实现依赖注入,增强代码的可测试性和可维护性。 4. **WebWork拦截器**:WebWork的拦截器机制允许在动作执行...
最近在做个项目,用的是webwork+spring+hibernate,在网上看了不少webwork+spring的配制方式,大多都是老的配制方式,比如2.1.7的,webwork2.2.4新加了很多功能,和spring的配制也简单了很多,我做了一个简单的登录...
标题中的"webwork-spring-hibernate.rar_spring_webwork"暗示了这个压缩包涉及的是一个集成WebWork、Spring和Hibernate的项目。这三个框架是Java Web开发中的重要组件,分别负责不同的职责:WebWork(或Struts)是...
此外,Spring还支持数据访问、Web应用、测试等众多模块,包括与WebWork集成的能力。 **iBatis**: iBatis是一个SQL映射框架,它将Java代码与SQL语句分离,使得开发者可以更自由地编写复杂的数据库查询。iBatis允许...
4. "weWork":这个名字可能是拼写错误或者不完整,可能指的是与WebWork相关的源代码或配置文件,它包含项目中WebWork部分的具体实现。 通过这个项目,开发者可以学习如何配置和集成这三个框架,理解它们之间的协同...
此外,Spring还提供了数据访问抽象,可以方便地与Hibernate集成。 **Hibernate** Hibernate是一个流行的Java持久化框架,它简化了与关系型数据库之间的交互。通过对象关系映射(ORM),Hibernate将Java对象转换为...