keywords weblogic Tag BodyTag BodyTag.EVAL_BODY_BUFFERED
问题描述 在weblogic下部署工程时报以下错误 但在Tomcat下不会报错
javax.servlet.jsp.JspTagException: Since tag class com.szkd.tags.ListOne does not implement BodyTag, it cannot return BodyTag.EVAL_BODY_BUFFERED
at jsp_servlet._page._kd._dict.__dict._jsp__tag4(__dict.java:454)
at jsp_servlet._page._kd._dict.__dict._jspService(__dict.java:251)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:226)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:124)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:391)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:309)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.szkd.filter.UserSessionFilter.doFilter(UserSessionFilter.java:134)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.szkd.filter.UserSessionFilter.doFilter(UserSessionFilter.java:134)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.szkd.filter.ResponseHeaderFilter.doFilter(ResponseHeaderFilter.java:36)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.szkd.filter.CharsetFilter.doFilter(CharsetFilter.java:31)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3368)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2117)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2023)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)
后来发现是我的自定义标签中的doStartTag()方法的返回值写错了
public int doStartTag() throws JspException
{
MyResult rs = (MyResult )pageContext.getAttribute(this.name);
if (rs == null)
{
throw new JspTagException("XXX");
}
List listResult = (List)rs.getResult();
if (listResult == null)
{
return SKIP_BODY;
}
itList = listResult.iterator();
if (itList.hasNext())
{
pageContext.setAttribute(var,itList.next());
pageContext.setAttribute(next, new Integer(nRow));
nRow++;
return EVAL_BODY_AGAIN;
//这一句返回值错了 原来返回的是EVAL_BODY_AGAIN
//但不知为什么在tomcat中不会报错