struts2 <debug>标签报错:Caught an exception while getting the property values of null

java.lang.NullPointerException

at com.opensymphony.xwork2.ognl.OgnlUtil.getBeanInfo(OgnlUtil.java:398)

at com.opensymphony.xwork2.ognl.OgnlUtil.getPropertyDescriptors(OgnlUtil.java:344)

at com.opensymphony.xwork2.ognl.OgnlUtil.getBeanMap(OgnlUtil.java:375)

at com.opensymphony.xwork2.ognl.OgnlReflectionProvider.getBeanMap(OgnlReflectionProvider.java:97)

at org.apache.struts2.components.Debug.start(Debug.java:71)

at org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:53)

at org.apache.jsp.WEB_002dINF.jsp.member2Restaurant.searchPartner_jsp._jspx_meth_s_005fdebug_005f0(searchPartner_jsp.java:272)

at org.apache.jsp.WEB_002dINF.jsp.member2Restaurant.searchPartner_jsp._jspService(searchPartner_jsp.java:183)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)

at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)

at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)

at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)

at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:164)

at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)

at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:374)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:278)

at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:236)

at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)

at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)

at cn.com.eatlab.web.AuthInterceptor.intercept(AuthInterceptor.java:74)

...........

ERROR ExceptionMappingInterceptor:38 - Caught an exception while getting the property values of null
- Class: com.opensymphony.xwork2.ognl.OgnlUtil

File: OgnlUtil.java

Method: getBeanInfo

Line: 398 - com/opensymphony/xwork2/ognl/OgnlUtil.java:398:-1

org.apache.jasper.JasperException: Caught an exception while getting the property values of null - Class: com.opensymphony.xwork2.ognl.OgnlUtil

File: OgnlUtil.java

Method: getBeanInfo

Line: 398 - com/opensymphony/xwork2/ognl/OgnlUtil.java:398:-1

at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

debug进去到Debug.class文件发现这样一段代码:

 public boolean start(Writer writer) {
        boolean result = super.start(writer);

        ValueStack stack = getStack();
        Iterator iter = stack.getRoot().iterator();
        List stackValues = new ArrayList(stack.getRoot().size());
        while (iter.hasNext()) {
            Object o = iter.next();
            Map values;
            try {
                values = reflectionProvider.getBeanMap(o);
            } catch (Exception e) {
                throw new StrutsException("<span style="color:#ff0000;">Caught an exception while getting the property values of</span> " + o, e);
            }
            stackValues.add(new DebugMapEntry(o.getClass().getName(), values));
        }

        addParameter("stackValues", stackValues);

        return result;
  }

图片

发现root中一个对象为null,此为发出异常的的原因,

接着发现jsp页面有一个<s:debug></s:debug>标签,去掉此标签后就正常了。

但是又产生了一个新的问题,debug标签就是debug用的,却因为debug标签产生bug......

搞清楚为什么就要知道为什么 valueStack.getRoot() 中会有一个 为null的 对象,

也就是要搞清楚valueStack到底是放的什么东西...然后...求高手分析...

时间: 2024-12-09 20:33:52

struts2 <debug>标签报错:Caught an exception while getting the property values of null的相关文章

freemarker自定义标签报错(八)

1.错误描述 freemarker.core.ParseException: Token manager error: freemarker.core.TokenMgrError: Unknown directive: #assgin on line: 18, column: 151, in template: tag.ftl in tag.ftl at freemarker.template.Template.<init>(Template.java:174) at freemarker.c

freemarker自定义标签报错(三)

freemarker自定义标签 1.错误描述 freemarker.core.ParseException: Encountered " " at line 14, column 12 in myself.ftl. Was expecting one of: <STRING_LITERAL> ... <RAW_STRING> ... "false" ... "true" ... <INTEGER> ... &l

freemarker自定义标签报错(四)

freemarker自定义标签 1.错误描述 六月 05, 2014 11:31:35 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template processing error: "Error executing macro: write\nrequired parameter: nums is not specified." Error executing macro: write required pa

freemarker自定义标签报错(七)

1.错误描述 六月 09, 2014 11:11:09 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template processing error: "Expression a is undefined on line 27, column 23 in tag.ftl." Expression a is undefined on line 27, column 23 in tag.ftl. The probl

freemarker自定义标签报错(一)

freemarker自定义标签 1.错误描述 freemarker.core.ParseException: Token manager error: freemarker.core.TokenMgrError: Unknown directive: #macro on line: 12, column: 101, in template: myself.ftl in myself.ftl at freemarker.template.Template.<init>(Template.java

freemarker自定义标签报错(二)

freemarker自定义标签 1.错误描述 freemarker.core.ParseException: Unexpected end of file reached. at freemarker.core.FMParser.generateParseException(FMParser.java:4702) at freemarker.core.FMParser.jj_consume_token(FMParser.java:4573) at freemarker.core.FMParser

web.xml中taglib标签报错问题解决方案

<taglib>标签在web.xml文件中报错解决方法 配置web.xml文件时,taglib标签报错,但不会影响程序的运行,web.xml 如下: < xml version="1.0" encoding="UTF-8" > <web-app id="WebApp_ID" version="2.4" xmlns="" xmlns:xsi="" xsi:sc

junit报错java.lang.Exception: No tests found matching

junit报错java.lang.Exception: No tests found matching 最近在学习Spring的过程中用到了Junit,然而中间遇到了个令人十分捉狂的报错. 1 java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=cdShouldNotBeNull], {ExactMatcher:fDisplayName=cdShouldNotBeNull(soundsystem.CDP

Eclipse 新建.jsp页面后,页面头部标签报错的解决方法

Eclipse 新建.jsp页面后,页面头部标签报错的解决方法 1.报错地方: 2.解决方法: .jsp页面右键==>BUild Path ==>Configure Build Path... 3.接着 4.按步骤操作后.jsp页面就不会报错了 版权声明:本文为CSDN博主「爱吃狼的羊」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/weixin_39890531/article/details/78