本来很简单的struts项目部署,却花掉我整整一天时间,归根结底问题出在struts2-spring-plugin-2.0.6.jar包身上。
先描述一下出现的问题吧:
1、启动项目后就报HTTP Status 404 错误,也就是tomcat中找不到文件错误(NOT FOUND),所有的JSP页面都无法访问。
2、控制台的输出:
严重: Exception starting filter struts2
Unable to load bean: type:com.opensymphony.xwork2.ObjectFactory class:org.apache.struts2.spring.StrutsSpringObjectFactory - bean - jar:file:/D:/Eclipse%20workspaces/MyEclipse%207.1%20for%20Struts2.0%20workspace%20(1)/.metadata/.me_tcat/webapps/emaileProject/WEB-INF/lib/struts2-spring-plugin-2.0.6.jar!/struts-plugin.xml:8:132
...省略...
Caused by: java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContextAware
... 33 more
说明是缺少org.springframework.context.ApplicationContextAware类,但是我配置的是一个Struts2.0+Hibernate的项目,并没有用到Spring,为什么在服务器加载Struts2.0的过程中涉及到Spring呢?
问题解决:
折腾了一天,从诊断web.xml struts.xml到不断尝试新建workspace...
最终发现,问题居然是struts2-spring-plugin-2.0.6.jar这个是用于struts2.0与Spring整合的包,如果项目中没有用到Spring,就不要引入这个包,并且这个包也不能放在WEB-INF\lib文件夹里,只要lib下面有struts2-spring-plugin-2.0.6.jar包,就会对Spring进行监听,就会报上面出现的错误...
补充:(我在JavaEye上找到struts2-spring-plugin包的作用,不知道对不对,接下来验证)
struts2与spring的整合。导入struts2-spring-plugin包,在web.xml中设置spring的监听器,
spring监听器对应的API类为:org.springframework.web.context.ContextLoaderListener。
struts2-spring-plugin包为我们将struts2的对象工厂设置为spring的IoC容器,其代码为:
<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" />
<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>
很明显,将struts.objectFactory定位为org.apache.struts2.spring.StrutsSpringObjectFactory
其余的工作就交给spring的IoC容器去做了。
另外:当我们需要增加spring的配置文件时,需要在web.xml中设定contextConfigLocation参数。代码如下:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>其他的spring配置文件名,用逗号隔开</param-value>
</context-param>
分享到:
相关推荐
这个“struts2.0项目开发jar包”包含了Struts2框架的核心组件和其他依赖库,使得开发者能够快速地搭建和配置Struts2应用程序。 首先,Struts2的核心组件包括以下几个主要部分: 1. **Action类**:这是业务逻辑的...
4. **配置Struts2.0**:在struts.xml配置文件中,配置Action类的路径、结果类型以及可能的重定向和转发。 5. **创建视图**:根据Action的结果,创建对应的JSP或FreeMarker模板,展示数据。 6. **编写测试**:针对...
通过阅读这份文档,读者可以深入理解Struts2.0的各个组件和使用方法,解决开发过程中遇到的问题。 在实际项目开发中,Struts2.0可以与Spring、Hibernate等其他框架集成,构建更完整的Java EE解决方案。Spring可以...
- 良好的社区支持:Struts 2.0有庞大的开发者社区,遇到问题时可以得到及时的帮助和解决方案。 总的来说,Struts 2.0系列的学习对于Java Web开发者来说是必不可少的,它能帮助你构建稳定、高效、易于维护的Web应用...
在实际项目中,我们可以通过以下方式使用Struts2.0标签: 1. 创建Action类,定义需要在视图中展示的属性。 2. 在JSP页面中,使用`<s:form>`标签创建表单,使用`s:textfield`、`s:textarea`等标签绑定Action的属性。...
总的来说,Struts2.0以其非侵入性、强大的标签库和灵活的配置方式,为Java Web开发者提供了一个高效、可扩展的框架。然而,随着Spring Boot和其他轻量级框架的崛起,Struts2的市场份额逐渐被侵蚀,但其设计理念和...
Struts2.0是Apache软件基金会的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架。这个框架的主要目的是为了简化开发过程,并提供一种更有效的方式来控制应用程序的行为。...
Struts2.0是Java Web开发中非常重要的一个框架,它是Apache软件基金会的Jakarta项目下的产品,专门用于构建基于MVC(Model-View-Controller)模式的Web应用程序。本教程将深入探讨Struts2.0的核心概念、关键组件以及...
"struts2.0做文件上传关于所加载的错误包造成的问题心得" 1:commons-io-1.4.jar 做上传时,如果用的该包是1.0的就经常出经上传不成功问题 2:commons-fileupload-1.2.1.jar 做上传时,如果用的该包是1.0的就也经常出...
在"Spring+Struts2.0实例代码"中,你可能会看到以下关键部分: 1. **配置文件**:包括 Spring 的 `beans.xml`,用于配置 Bean 对象和依赖注入;以及 Struts 2.0 的 `struts.xml`,用于配置 Action 映射和拦截器链。...
在Struts2.0框架中,这一问题尤为突出,因为不当的编码设置会直接导致用户界面显示错误或者数据处理时出现乱码。本文将深入探讨如何在Struts2.0中解决中文乱码问题,确保应用程序能够正确地处理和显示中文字符。 ##...
通过深入学习和实践,你将能够熟练运用Struts2.0框架进行Web应用开发,提高开发效率,并能解决实际项目中遇到的问题。同时,随着对Struts2.0的掌握,你也将更好地理解MVC模式在Web开发中的应用,为后续学习其他类似...
1. **配置Struts2.0**:设置Struts2.0的配置文件,包括Action的配置,确保能正确映射到处理树结构的Action。 2. **编写Action**:创建处理树结构的Action,根据请求参数返回相应的JSON数据。 3. **创建ZTree的JSON...
通过这11个章节的学习,开发者可以全面掌握Struts2.0框架的使用,从而在实际项目中更好地应用这一强大的工具。由于具体章节内容未知,以上内容仅是基于一般Struts2教程的推测,实际学习时应以文档详细内容为准。如果...
在图片上传场景中,Struts2.0的Action类是处理用户请求的核心,而配置文件(struts.xml)定义了请求的映射和处理方式。 1. **前端页面设计**:通常,我们会创建一个HTML或JSP页面,包含一个`<input type="file">`...
6. **异常处理**:文件上传过程中可能会遇到各种问题,如文件大小超过限制、文件类型不被允许等。因此,你需要编写异常处理代码来捕获并处理这些错误。 7. **验证与安全**:为了防止恶意用户上传恶意文件,你需要对...
在项目中,你需要配置Struts2的配置文件`struts.xml`,声明Action和对应的Action类以及结果页面。例如: ```xml <result name="success">/success.jsp <result name="error">/error.jsp ``` 上面的配置表明,...
Struts2.0 API文档是Java开发者在使用Struts2框架进行Web开发时的重要参考资料,它详尽地列出了框架中的各个类、接口、方法及其用法。Struts2是Apache软件基金会的一个开源项目,是MVC(Model-View-Controller)设计...
Struts2.0是一款基于MVC(Model-View-Controller)设计模式的开源Java Web框架,由Apache...通过对这些库的分析,开发者可以更好地解决实际开发中遇到的问题,提升代码质量,并为未来的框架设计和优化打下坚实基础。
Struts2.0是Java Web开发中一个非常重要的框架,它是经典的MVC(Model-View-Controller)设计模式的实现,...同时,理解源码也有助于提升你的问题解决能力,当遇到框架使用上的困扰时,你可以更直接地定位和解决问题。