weblogic的jsp解析器可能是自己写的. tomcat环境下它认为JspWriter out已经关闭了. 看看哪里是不是调用了out.close()之类什么的。 检查下这个标签里面怎么封装的com.cattsoft.webpub.tag.TreeTag.doStartTag 或者换个高版本的5.5.x的tomcat试试。 java.io.IOException: Stream closed at org.apache.jasper.runtime.JspWriterImpl.ensureOpen(JspWriterImpl.java:204) at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:312) at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:337) at com.cattsoft.webpub.tag.TreeTag.doStartTag(TreeTag.java:250) at org.apache.jsp.sm.login.framan_jsp._jspx_meth_tree_tree_0(framan_jsp.java:112) at org.apache.jsp.sm.login.framan_jsp._jspService(framan_jsp.java:81) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
tomcat环境下它认为JspWriter out已经关闭了. 看看哪里是不是调用了out.close()之类什么的。
检查下这个标签里面怎么封装的com.cattsoft.webpub.tag.TreeTag.doStartTag
或者换个高版本的5.5.x的tomcat试试。 java.io.IOException: Stream closed
at org.apache.jasper.runtime.JspWriterImpl.ensureOpen(JspWriterImpl.java:204)
at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:312)
at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:337)
at com.cattsoft.webpub.tag.TreeTag.doStartTag(TreeTag.java:250)
at org.apache.jsp.sm.login.framan_jsp._jspx_meth_tree_tree_0(framan_jsp.java:112)
at org.apache.jsp.sm.login.framan_jsp._jspService(framan_jsp.java:81)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
getOut();
String path = getJsPath();
if (path != null) {
path += "/";
}
try {
if (path != null) {
out.println("<script src=\"" + path + "sps_tree.js\"></script>");
out.println("<script src=\"" + path + "tree_menu.js\"></script>");
out.println("<script src=\"" + path + "sm_tree.js\"></script>");
}
out.println("<script>");
if (getNodeType() != null) {
out.println("var nodeType = \"" + getNodeType() + "\"");
} else {
out.println("var nodeType = \"url\"");
}
if (getLeafType() != null) {
out.println("var leafType = \"" + getLeafType() + "\"");
} else {
out.println("var leafType = \"url\"");
} out.println("var nUrl = \"" + getHref() + "\"");
out.println("var lUrl = \"" + getHrefLeaf() + "\"");
out.println("var selectedNode = null;");
out.println("var tar = \"" + getTarget() + "\"");
out.println("var = \"" + getMark() + "\"");
if (getMenuWidth() != null && !"".equalsIgnoreCase(getMenuWidth())) {
out.println("var menu = new tree_menu(" + getMenuWidth() + ");");
} else {
out.println("var menu = new tree_menu(120);");
}
out.println("var unfoldAllItem = null;");
out.println("var foldAllItem = null;");
if (getInitMenu() != null
&& ("y".equalsIgnoreCase(getInitMenu())
|| "true".equalsIgnoreCase(getInitMenu()) || "yes"
.equalsIgnoreCase(getInitMenu()))) {
out.println("beforeItemAdd();");
}
out.println("if(=='login'){");
out.println("unfoldAllItem = menu.add(\"全部展开\",null,'js',\"smunfold(root,null,-1)\");");
out.println("foldAllItem = menu.add(\"全部收缩\",null,'js',\"smunfold(root,true,-1)\");");
out.println("}else{");
out.println("unfoldAllItem = menu.add(\"全部展开\",null,'js',\"unfold(root,null,-1)\");");
out.println("foldAllItem = menu.add(\"全部收缩\",null,'js',\"unfold(root,true,-1)\");");
out.println("}"); if (getInitMenu() != null && "y".equalsIgnoreCase(getInitMenu())
|| "true".equalsIgnoreCase(getInitMenu())
|| "yes".equalsIgnoreCase(getInitMenu())) { out.println("afterItemAdd();");
}
out.println("document.body.oncontextmenu=function(){event.returnValue=false;}");
out.println("document.body.onmousedown=function(){");
if (getShowMenu() != null
&& !("".equalsIgnoreCase(getShowMenu()) || "y".equalsIgnoreCase(getShowMenu())
|| "true".equalsIgnoreCase(getShowMenu()) || "yes"
.equalsIgnoreCase(getShowMenu()))) {
out.println(" return;");
}
out.println(" if(event.button==2){");
out.println(" beforeMenu();");
out.println(" menu.show();");
out.println(" afterMenu();");
out.println(" }");
out.println("}");
out.println(" "); out.println("</script>");
String nameForm = this.getFormName();
if (nameForm == null || "".equals(nameForm)) {
nameForm = "formName";
}
if ("tempForm".equalsIgnoreCase(nameForm)) {
nameForm.concat("z");
}
out
.println("<form name='tempForm'><input type='hidden' name='temp' value='-1'/><input type='hidden' name='type' value='o'/></form> <form name='"
+ nameForm + "' id = 'treeFormName' >");
} catch (IOException ex) {
ex.printStackTrace();
}
String tree = getTree();
try {
out.write(tree); if (getDepth() != null && !"".equalsIgnoreCase(getDepth())) {
out.println("<script>");
out.println("if(=='login')");
out.println("smunfold(root,null," + getDepth() + ");");
out.println("else ");
out.println("unfold(root,null," + getDepth() + ");");
out.println("</script>");
}
} catch (IOException ex1) {
ex1.printStackTrace();
}
/* finally {
try{
out.close();
}catch(IOException e){
e.printStackTrace();
}
}*/
return EVAL_BODY_INCLUDE;
}
帮忙看看。我试看看用tomcat5.5
如果是 :JspWriter out = pageContext.getOut();
换成: JspWriter out = bodyContent.getEnclosingWriter();
试 试...
我觉得是out对象的实例创建的时候有点问题。
out = pageContext.getOut();
}
return out;麻烦
1.out对象里面的response是否为空。
2.out对象里面的closed状态是否为true。我觉得第一种可能性很大。