struts2常见错误总结

本文汇总了Struts2框架开发中常见的错误及其解决方法,包括配置文件问题、数据库编码问题、页面跳转异常等问题,并提供了具体的操作步骤。
1.Caught exception while loading file struts-default.xml - [unknown location]
解决办法:
由于lib包冲突造成的,将两个解析xml用的jar从项目里移到tomacat的lib下面就ok了,xml-apis.jar xerces-2.6.2.jar
2.严重: Exception starting filter struts2
Error building results for action login in namespace  - action - file:/E:/apache-tomcat-6.0.14/webapps/testStruts2/WEB-INF/classes/struts.xmlstruts2常见错误总结57
原因:在web.xml已声明使用模板,并对所有的类进行了监听,但在处理过程中,发现不知道到哪里去找模板的配置文件,即在struts.xml中已使用了模板,但并没有告诉程序应该到哪去解析这些内容,即titles-default.java文件应该声明出来,
原因1:在struts.xml中错误的声明如下:
<package name="aa1" extends="struts-default" >
<action name="login" class="com.sun.demo.LoginAction">
<result type="tiles">showWelcomePage</result>

</action>

</package>
应改为:
<package name="aa1" extends="titles-default" >
<action name="login" class="com.sun.demo.LoginAction">
<result type="tiles">showWelcomePage</result>

</action>

</package>
原因2:titles.xml文件的 错误配置
<tiles-definitions>
         <definition name="showWelcomePage" template="template.jsp">                 
              <put-attribute name="menu" >menu_1.jsp</put-attribute>                 
              <put-attribute name="content" >login_form.jsp</put-attribute>
</definition>
正确的配置为:
<tiles-definitions>
         <definition name="showWelcomePage" template="template.jsp">                 
              <put-attribute name="menu" value="/menu_1.jsp"></put-attribute>                 
              <put-attribute name="content" value="/login_form.jsp"></put-attribute>
</definition>
页面显示情况如下:

错误配置如下:
<definition name="showWelcomePage" template="template.jsp">                 
              <put-attribute name="menu" value="menu_1.jsp"></put-attribute>                 
              <put-attribute name="content" value="login_form.jsp"></put-attribute>
</definition>
正确配置如下 :
<definition name="showWelcomePage" template="template.jsp">                 
              <put-attribute name="menu" value="/menu_1.jsp"></put-attribute>                 
              <put-attribute name="content" value="/login_form.jsp"></put-attribute>
</definition>
在value属性中,以"/"开头表示地址,如果不以“/”开头,则系统会默认为内容
3.执行增加操作时,直接对对象进行操作,对象中各字段值都正确,但插入数据库后乱码
解决办法(1)统一页面和数据库编码为utf-8
(2)修改hibernate的配置文件,修改url属性为:
jdbc:mysql:/127.0.0.1:3306/shop?useunicode=true&characterEncuoding=utf-8
4.could not create Query
原因:sql语句书写不正确
5.mysql数据库问题
mysql Error 1115号错误,utf编码
解决办法:
安装时编码采用默认的编码,安装成功后,再到安装路径下修改安装语言,修改mysql/my.ini文件。
6.在对对象进行删除操作时,如果对象中的某个字段不允许为空,则必须赋值,否则会提示:字段名not null等信息
7.在进行页面跳转时(从action中到页面,使用了模板),提示I/O异常
解决办法:tiles.xml文件中document题头没有书写正确
8.在进行页面跳转时,已经跳转到了相应的页面,但显示结果页面不正确。
解决办法:检查模板中的各个属性是否正确配置,尤其注意有的属性会忘记配置。
9.对日期类型数据进行操作
(1)配置文件中相对应的字段属性改为date
(2)pojo类中引用java.sql.date
10.Nosuchdefinition titles...
原因:tiles.xml文件中的配置有问题,尤其注意name属性
11.在服务器一启动,就会报“Filter error”等提示信息,项目无法建立
原因struts2常见错误总结1)struts.xml配置错误
1>package中extends错误
2>action中
12、No result defined for action ***Action and result success
    这个错误产生的原因是,在struts.xml中配置没有配置success result。我的理解是action执行完后,必须产生一个result类。这个类可是servlet或是其他,但不能为空。
    解决方法:增加result success定义。
    <result>***.jsp</result>
  
   13、No result defined for action ***Action and result input
   这个错误,在提交数据时经常碰到。定义的struts2 intercept发挥了作用,当POJO类型与输入的类型不同时,intercept类会中止拦截,并返回输入页面。详细的错误可在使用<s:fielderror/>来获取。
    解决方法:增加resut input定义。
    <result name="input">***.jsp</result>
  
   14、There is no Action mapped for namespace / and action name ***Action
    可以直译为没有找到这个action,也就是说在struts.xml中没有定义这个action。这个错误一般是action的名字拼写错误造成的,请仔细检查struts.xml的定义与页面的acrion是否一致。

   15、Class ognl.OgnlRuntime can not access a member of class ***Action with modifiers "private"
    关键字是"private",action类中的字段为private,这样页面(如jsp)是无法访问到的,这也是struts2面向对象的一大特征。
    解决方法:
    在action中添加set get方法,这样struts会自访问这个方法。set get方法必须遵循bean的标准写法。


  16、Exception starting filter struts2
   未定变义struts-default。也package中加入extends="struts-default"
 
17、笔下之前遇到一个问题:报:Error building results for action admin_* in namespace
同时还报:Caused by: There is no result type defined for type 'redirectAction'
网上说是package元素里要加入extends="struts-default"属性,
但是package元素里有extends="struts-default"属性,之前很费解
最后修改redirectAction为redirect-action解决问题,个人估计是struts2版本的问题
<result name="checkSuccess" type="redirect-action">
总结:仔细看错误原因很重要,对症下药!
 
 
18、redirect和redirect-action的区别
使用redirect需要后缀名
使用redirect-action"不需要后缀名

<result name="success" type="redirect">viewTask.action</result>

<result name="success" type="redirect-action">viewTask</result>

xray 是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,主要特性有: 检测速度快。发包速度快; 漏洞检测算法高效。 支持范围广。大至 OWASP Top 10 通用漏洞检测,小至各种 CMS 框架 POC,均可以支持。 代码质量高。编写代码的人员素质高, 通过 Code Review、单元测试、集成测试等多层验证来提高代码可靠性。 高级可定制。通过配置文件暴露了引擎的各种参数,通过修改配置文件可以极大的客制化功能。 安全无威胁。xray 定位为一款安全辅助评估工具,而不是攻击工具,内置的所有 payload 和 poc 均为无害化检查。 目前支持的漏洞检测类型包括: XSS漏洞检测 (key: xss) SQL 注入检测 (key: sqldet) 命令/代码注入检测 (key: cmd_injection) 目录枚举 (key: dirscan) 路径穿越检测 (key: path_traversal) XML 实体注入检测 (key: xxe) 文件上传检测 (key: upload) 弱口令检测 (key: brute_force) jsonp 检测 (key: jsonp) ssrf 检测 (key: ssrf) 基线检查 (key: baseline) 任意跳转检测 (key: redirect) CRLF 注入 (key: crlf_injection) Struts2 系列漏洞检测 (高级版,key: struts) Thinkphp系列漏洞检测 (高级版,key: thinkphp) POC 框架 (key: phantasm) 其中 POC 框架默认内置 Github 上贡献的 poc,用户也可以根据需要自行构建 poc 并运行。 设计理念 发最少的包做效果最好的探测。 如果一个请求可以确信漏洞存在,那就发一个请求。如果两种漏洞环境可以用同一个 payload 探测出来,那就 不要拆成两个。 允许一定程度上的误报来换取扫描速度的提升 漏洞检测工具无法面面俱到,在漏报和误报的选择上必然要选择误报。如果在使用中发现误报比较严重,可以进行反馈。 尽量不用时间盲注等机制检测漏洞。 时间检测受影响因素太多且不可控,而且可能会影响其他插件的运行。因此除非必要(如 sql)请尽量使用与时间无关的 payload。 尽量不使用盲打平台 如果一个漏洞能用回显检测就用回显检测,因为盲打平台增加了漏洞检测过程的不确定性和复杂性。 耗时操作谨慎处理 全局使用 Context 做管理,不会因为某个请求而导致全局卡死。 简易架构 了解 xray 的整体架构可以更好的理解 cli 和配置文件的设置,方便大家更好的使用。 整体来看,扫描器这类工具大致都是由三部分组成: 来源处理 漏洞检测 结果输出 来源处理 这一部分的功能是整个漏洞检测的入口,在 xray 中我们定义了四个入口,分别是 HTTP 被动代理 简易爬虫 单个 URL URL列表的文件 单个原始 HTTP 请求文件 漏洞检测 这一部分是引擎的核心功能,用于处理前面 来源处理 部分产生的标准化的请求。用户可以针对性的启用插件,配置扫描插件的参数,配置 HTTP 相关参数等。 结果输出 漏洞扫描和运行时的状态统称为结果输出,xray 定义了如下几种输出方式: Stdout (屏幕输出, 默认开启) JSON 文件输出 HTML 报告输出 Webhook 输出 使用教程见:xray 是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,主要特性有: 检测速度快。发包速度快; 漏洞检测算法高效。 支持范围广。大至 OWASP Top 10 通用漏洞检测,小至各种 CMS 框架 POC,均可以支持。 代码质量高。编写代码的人员素质高, 通过 Code Review、单元测试、集成测试等多层验证来提高代码可靠性。 高级可定制。通过配置文件暴露了引擎的各种参数,通过修改配置文件可以极大的客制化功能。 安全无威胁。xray 定位为一款安全辅助评估工具,而不是攻击工具,内置的所有 payload 和 poc 均为无害化检查。 目前支持的漏洞检测类型包括: XSS漏洞检测 (key: xss) SQL 注入检测 (key: sqldet) 命令/代码注入检测 (key: cmd_injection) 目录枚举 (key: dirscan) 路径穿越检测 (key: path_traversal) XML 实体注入检测 (key: xxe) 文件上传检测 (key: upload) 弱口令检测 (key: brute_force) jsonp 检测 (key: jsonp) ssrf 检测 (key: ssrf) 基线检查 (key: baseline) 任意跳转检测 (key: redirect) CRLF 注入 (key: crlf_injection) Struts2 系列漏洞检测 (高级版,key: struts) Thinkphp系列漏洞检测 (高级版,key: thinkphp) POC 框架 (key: phantasm) 其中 POC 框架默认内置 Github 上贡献的 poc,用户也可以根据需要自行构建 poc 并运行。 设计理念 发最少的包做效果最好的探测。 如果一个请求可以确信漏洞存在,那就发一个请求。如果两种漏洞环境可以用同一个 payload 探测出来,那就 不要拆成两个。 允许一定程度上的误报来换取扫描速度的提升 漏洞检测工具无法面面俱到,在漏报和误报的选择上必然要选择误报。如果在使用中发现误报比较严重,可以进行反馈。 尽量不用时间盲注等机制检测漏洞。 时间检测受影响因素太多且不可控,而且可能会影响其他插件的运行。因此除非必要(如 sql)请尽量使用与时间无关的 payload。 尽量不使用盲打平台 如果一个漏洞能用回显检测就用回显检测,因为盲打平台增加了漏洞检测过程的不确定性和复杂性。 耗时操作谨慎处理 全局使用 Context 做管理,不会因为某个请求而导致全局卡死。 简易架构 了解 xray 的整体架构可以更好的理解 cli 和配置文件的设置,方便大家更好的使用。 整体来看,扫描器这类工具大致都是由三部分组成: 来源处理 漏洞检测 结果输出 来源处理 这一部分的功能是整个漏洞检测的入口,在 xray 中我们定义了四个入口,分别是 HTTP 被动代理 简易爬虫 单个 URL URL列表的文件 单个原始 HTTP 请求文件 漏洞检测 这一部分是引擎的核心功能,用于处理前面 来源处理 部分产生的标准化的请求。用户可以针对性的启用插件,配置扫描插件的参数,配置 HTTP 相关参数等。 结果输出 漏洞扫描和运行时的状态统称为结果输出,xray 定义了如下几种输出方式: Stdout (屏幕输出, 默认开启) JSON 文件输出 HTML 报告输出 Webhook 输出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值