`
newspringwork
  • 浏览: 101174 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

改变struts2配置路径要做的几步工作

    博客分类:
  • Java
 
阅读更多

最近开始学习struts2,准备用struts2做项目,按照以往的习惯喜欢把配置文件之类的放到/WEB-INF/config目录下,结果写的Demo运行时就出问题了。

几经测试发现只有放到src下面才能正常运行,但是本人是属于那种固执(:-D也就是那种不撞南墙不死心)的人,查找了3、4个小时,翻阅无数同仁的文章,虽然没有直接找到解决办法,看一些回帖时也得到了启示,最后总算是解决了这个问题,下面就贴出解决的步骤,希望能为某些人解决一些同样的问题。

 

--------------------

平台、技术:Tomcat 6.6,JDK1.6,Struts2.18

--------------------

先帖出几个主要的配置文件:

 

----struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<package name="def" extends="struts-default" namespace="/">
		<action name="hello">
			<result>/hello.jsp</result>
		</action>
	</package>
</struts> 

 

----web.xml

	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>*.action</url-pattern>
	</filter-mapping>

 

 

//这是我测试用的两个文件代码,由于只是简单的测试,jsp就不贴出了。

 

---下面是使用非默认路径(不在src下)时出现的错误

  • 地址栏输入:../hello.action,出现异常:

      警告: Could not find action or result
      There is no Action mapped for namespace / and action name hello. - [unknown location]

表明请求映射出现了问题,难道是struts2的配置文件出现了错误?仔细检查一下,不是!

再回过头看看Tomcat的启动日志,有下面一句:

      2011-7-17 20:15:36 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
      信息: Unable to locate configuration files of the name struts.xml, skipping

 

关键是在上面下划线的那一句,不能定位配置文件,也就是struts.xml找不到!这是因为struts2默认是到src下面去找struts配置文件的,现在我是放在/WEB-INF/下面,当然会找不到了!

 

  • 那么,我们就在配置struts2的web.xml中filter的元素内指明文件路径嘛,在配置struts2的过滤器中添加如下元素:
<init-param>
       <param-name>config</param-name>
       <param-value>/WEB-INF/struts.xml</param-value>
</init-param>

 

重启Tomcat,这下大发了,Tomcat直接蹦出异常:

com.opensymphony.xwork2.inject.DependencyException:

      com.opensymphony.xwork2.inject.ContainerImpl$MissingDependencyException:

             No mapping found for dependency [type=com.opensymphony.xwork2.ObjectFactory, name='default'] in public void com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.

                                          setObjectFactory(com.opensymphony.xwork2.ObjectFactory).

 

依赖的配置文件没有找到。

 

 

  • google或baidu一下,发现有很多人出现过这种问题,认真的读下去,发现虽然指明了struts的配置文件的路径,但是他依赖的如struts-default.xml没有放入初始化参数。

%>_<%,为了测试成功,我忍,满足它,给config配置增加几个值,变为:struts-default.xml,struts-plugin.xml,/WEB-INF/struts.xml

 

重启,期待着没有错误的日子........

 

Bingo!Tomcat终于没有发出救火车的声音了....

 

下面重新访问  ..../hello.action。

问题解决了????恭喜你!

依然是错误[There is no Action mapped for namespace / and action name hello. - [unknown location]]??????不要着急,很正常!

 

 

  • 仔细看看Tomcat的启动日志,依然可以发现一个失败信息:

2011-7-17 20:15:36 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Unable to locate configuration files of the name struts.xml, skipping

 

为什么指定了自己的struts.xml文件路径依然访问不到呢?

原因依然在struts加载配置文件的方式,struts并不是获取的配置文件相对应用(项目)的路径,而是相对src,对于web是相对/WEB-INF/classes文件夹的路径,现在知道了最终的解决方案了?

对了,就是把web.xml中的[/WEB-INF/struts.xml]改成 [../struts.xml],即使用相对/WEB-INF/classes文件夹的路径!

 

最终web.xml的配置为:

<filter>
       <filter-name>struts2</filter-name>
       <filter-class>
               org.apache.struts2.dispatcher.ng.filter.
                             StrutsPrepareAndExecuteFilter
        </filter-class>
        <init-param>
                <param-name>config</param-name>
	<param-value>
                         struts-default.xml,struts-plugin.xml,../struts.xml
                </param-value>
         </init-param>
</filter>
<filter-mapping>
         <filter-name>struts2</filter-name>
         <url-pattern>*.action</url-pattern>
</filter-mapping>

 

编后:经过以上的步骤我最终解决了问题,希望能对出现了同样问题的人有所帮助!由于第一次在ITeye上发技术类的文章不足之处还请大家多多包涵!

 

分享到:
评论

相关推荐

    海辉面试题

    #### Struts1,Struts2在Spring里配置单例 - 在Spring配置文件中,通过`&lt;bean&gt;`标签的`scope`属性来配置单例。 #### Struts1、Struts2各基于什么开发,并且开发组织是什么 - **Struts1**:基于Java Servlet API,...

    JAVA零基础学习

    1. **环境配置**:学习Java的第一步通常是安装Java Development Kit (JDK),设置环境变量如JAVA_HOME,确保Java编译器(javac)和Java虚拟机(JVM)可以在系统中正常工作。 2. **基础语法**:Java的基础语法包括...

    电子商务之价格优化算法:动态定价:动态定价的实施与案例研究.docx

    电子商务之价格优化算法:动态定价:动态定价的实施与案例研究.docx

    VB程序实例-Office或IE风格的工具栏.zip

    基于VB的程序实例,可供参考学习使用

    aggdraw-1.3.14-cp39-cp39-win32.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    通用模板/素材/样式-100套大数据可视化系统大屏页面(开箱即用)+python源码+演示+文档说明

    包含: 001 服务大数据可视化监管平台 002 水质情况实时监测预警系统 003 联心菜市场数据中心 004 政务大数据共享交换平台 005 可视化监控管理 006 全国疫情实时监控 007 惠民服务平台 009 某公司大数据监控平台 010 双数智慧公卫-传染病督导平台 011 大数据可视化系统数据分析通用模版 012 某公司大数据展示模版 013 某公司大数据展示模版 014 时实客流量监控中心 015 广西矿产资源大数据监管平台 016 某某科技有限公司-生产数据中心 017 大数据可视化通用素材 018 大数据可视化系统数据分析通用模版 等等 - 不懂运行,下载完可以私聊问,可远程教学 本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。

    akima-2021.6.6-cp38-cp38-win32.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    使用java实现的简单飞机大战游戏.zip

    本资源提供了使用java实现的简单飞机大战游戏,是一款经典的2D射击游戏。玩家在游戏中控制一架飞机,通过键盘操作移动和发射子弹,击落敌机获得积分。当达到一定积分时,会出现Boss,增加游戏难度。游戏还包含碰撞检测、得分系统以及游戏状态管理等功能。该资源旨在帮助学习者掌握Java编程的各个方面,包括面向对象设计、图形界面编程等。通过这个项目,学习者可以深入理解如何使用Java语言实现一个具备基本功能的小游戏,并学会如何处理游戏中的交互、碰撞检测和动画效果等技术细节。本资源适合Java编程初学者及对游戏开发感兴趣的开发者学习和参考,是提升编程技能和项目经验的绝佳实践材料。

    java毕业设计-基于SSM的新生报到系统【代码+论文+PPT+开题】

    原文链接:https://blog.csdn.net/zsd12379/article/details/143531872 包含功能: 个人中心:提供学生个人信息查看与编辑,以及报到进度跟踪的个性化空间。 管理员管理:实现系统管理员的权限分配、角色管理及操作日志监控。 班级管理:负责班级的创建、成员管理、班级信息更新及班级活动安排。 学院管理:维护学院基本信息,包括学院介绍、专业设置及学院新闻发布。 专业管理:提供专业信息的录入、修改及查询服务,支持专业详细介绍。 消息通知:发送报到流程指导、重要日期提醒及个性化通知给学生。 宿舍管理:分配、调整宿舍,记录宿舍信息及处理宿舍相关申请。 缴费管理:实现在线学费、住宿费等各类费用的缴纳、查询及缴费记录保存。 学生管理:涵盖学生信息的录入、审核、查询及学生状态(如报到状态)的更新。

    SolarWinds数据库性能分析器:监控MySQL数据库性能.docx

    SolarWinds数据库性能分析器:监控MySQL数据库性能.docx

    Toad Data Modeler:Toad数据模型器的插件与扩展.docx

    Toad Data Modeler:Toad数据模型器的插件与扩展.docx

    R语言对白葡萄酒数据集进行数据探索项目源码+文档说明(高分项目)

    R语言对白葡萄酒数据集进行数据探索项目源码+文档说明(高分项目),含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、期末大作业和课程设计高分必看,下载下来,简单部署,就可以使用。该项目可以直接作为毕设、期末大作业使用,代码都在里面,系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值,项目都经过严格调试,确保可以运行! R语言对白葡萄酒数据集进行数据探索项目源码+文档说明(高分项目)R语言对白葡萄酒数据集进行数据探索项目源码+文档说明(高分项目)R语言对白葡萄酒数据集进行数据探索项目源码+文档说明(高分项目)R语言对白葡萄酒数据集进行数据探索项目源码+文档说明(高分项目)R语言对白葡萄酒数据集进行数据探索项目源码+文档说明(高分项目)R语言对白葡萄酒数据集进行数据探索项目源码+文档说明(高分项目)R语言对白葡萄酒数据集进行数据探索项目源码+文档说明(高分项目)R语言对白葡萄酒数据集进行数据探索项目源码+文档说明(高分项目)R语言对白葡萄酒数据集进行数据探索项目源码+文档说明(高分项目)R语言对白葡萄酒数据集进行数据探索项目源码+

    springboot003基于Springboot+Vue的图书个性化推荐系统的设计与实现毕业源码案例设计.zip

    springboot003基于Springboot+Vue的图书个性化推荐系统的设计与实现毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。

    yolov10预训练模型.rar

    在按照YOLOv10官网上的步骤进行时,运行app.py文件时,如果没有预训练模型的话会报错。解压压缩包里的内容到同级目录下(在requirements.txt文档下面),这样运行后就不会报错。

    #-ssm-043-mysql-口腔护理网站-.zip

    基于SSM的口腔护理网站主要是后台管理类型的系统,但前台和后台独立存在但又相辅相成,前后台访问的是同一个数据库,但是所访问的数据库对象不同。 前台: (1)用户可以匿名浏览网站内容和观看口腔护理的小贴士,但不能评论也不能回复,更不能进行自己健康信息的录入。 (2)医生的注册与登录:口腔科的医生用户们如果想在网站录入自己的个人信息,需要经过一系列的有验证信息的注册,注册成功并登录后,医生可以查看所有的预约信息。 (3)个人中心:用户可以在首页面进行对自己个人信息的查看,以及可以查看自己录入的历史数据。 (4)在线留言:用户可以在网站首页进行在线留言,医生看到后会及时进行回复。 (5)口腔护理预约:用户可以在网站上进行口腔护理的预约。 后台: (1)用户个人信息管理系统:在此系统中维护和新建的用户个人信息,比如说当一个用户的密码被遗漏了,经过对密码提示出现问题的验证就可以直接进行密码的修改。 (2)医生信息的管理功能模块:管理人员可以有效地维护医生信息。 (3)预约信息管理模块:管理员可以随时对网站中的预约信息加以管理维护。 (4)在线留言管理模块:管理员通过账号可以实时管理网站中的留言

    一个Java语言写的俄罗斯方块小游戏。因为作者刚接触Java,正在摸索着学习,代码并非原创,而是跟着别人学习。.zip

    本资源是一个Java语言编写的俄罗斯方块小游戏,旨在帮助初学者通过实战学习Java编程并体验游戏开发的乐趣。项目包含完整的源代码和资源文件,适合计算机相关专业的学生、教师以及企业员工下载学习使用。该项目涵盖了Java编程、GUI设计、事件处理、多线程等多个核心概念,是学习和实践Java技术的好例子。通过阅读和理解源代码,开发者可以提升自己的编程技能,加深对面向对象编程范式的理解。此外,项目经过测试,功能正常,作者的答辩评分高达96分,因此质量得到了验证。用户在下载使用之前应首先查看README.md文件(如果存在),该文件中包含了项目的相关信息和使用说明。需要注意的是,本资源为学习资源,仅供学习和研究目的使用,不得用于商业目的。用户必须遵守相关的法律法规,尊重原创者的劳动成果和知识产权。

    Trustwave DbProtect:DbProtect_高级功能与定制化服务技术教程.docx

    Trustwave DbProtect:DbProtect_高级功能与定制化服务技术教程.docx

    astropy-3.2.3-cp35-cp35m-win32.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    VB程序实例-淡入淡出效果.zip

    基于VB的程序实例,可供参考学习使用

    matlab mpc pmsm model

    matlab mpc pmsm model

Global site tag (gtag.js) - Google Analytics