[英]java.io.IOException: write beyond end of stream OR java.lang.IllegalStateException: getOutputStream() has already been called
我不知道為什么我會收到這個錯誤。 我只是用Yahoo YUI實現了一個簡單的AJAX搜索。 注意我確實寫了getoutputstream來得到一個錯誤,然后當我做printwritter時遇到了第一個錯誤。
java.lang.IllegalStateException: getOutputStream() has already been called!**
at com.documentum.web.servlet.CompressingResponseWrapper.getWriter(CompressingResponseWrapper.java:119)
at jsp_servlet._._jspService(__peoplesearch.java:131)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
java.io.IOException: write beyond end of stream
at java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:104)
at java.util.zip.GZIPOutputStream.write(GZIPOutputStream.java:72)
YAHOO YUI ...........
(function() {
YAHOO.namespace('NameSearch');
YAHOO.NameSearch = function(element) {
var ColumnDefs = [
{key:"age",label: "Age", sortable:true, resizeable:true},
{key:"height", label: "Persons Height", sortable:true, resizeable:true},
{key:"name",label: "First Name", sortable:true, resizeable:true}
];
var personDataSource = new YAHOO.util.DataSource('/nameSearch.jsp?');
personDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
personDataSource.responseSchema = {
resultsList : 'PeopleSearch',
fields : [ 'age', 'height', 'name' ]
};
YAHOO.NameSearch.superclass.constructor.call(this,
element, ColumnDefs, personDataSource );
};
var PersonSearch = YAHOO.NameSearch;
YAHOO.lang.extend(NameSearch, YAHOO.widget.DataTable, {
refresh : function(parameters) {
var successHandler = function() {
var sortedBy = this.getState().sortedBy;
this.onDataReturnReplaceRows.apply(this, arguments);
數據..........
<%
String pKey = request.getParameter("PrimaryKey");
String personAge = request.getParameter("AGE");
String firstName = request.getParameter("Name");
List<HashMap<String, Object>> personList = PersonDAO.getPersonDetails(pKey, personAge, firstName);
response.setContentType("application/json");
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> json = new HashMap<String, Object>();
List<Map<String, Object>> array = new ArrayList<Map<String, Object>>();
Map<String, Object> node;
for (int i = 0; i < personList.size(); i++) {
node = new HashMap<String, Object>();
HashMap<String, Object> person = personList.get(i);
{
node.put("age", (String) person.get("age_key"));
node.put("height", (String) person.get("height_key"));
node.put("name", (String) person.get("name_key"));
}
array.add(node);
}
json.put("PeopleSearch", array);
mapper.writeValue(response.getOutputStream(), json);
%>
:DeflaterOutputStream類不支持異步調用。 因此,如果要使用異步調用,則需要在Web xml中禁用gzip過濾器
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.