if (!foundCookie) {
logger.info("cooookies Not found --- ");
ResourceBundle appName = ResourceBundle.getBundle(
"conf/filename", Locale.getDefault());
Enumeration bundleKeys = appName.getKeys();
Cookie[] cookieToBeAdded = new Cookie[9000];
int i =0 ;
while (bundleKeys.hasMoreElements()) {
logger.error((String) bundleKeys.nextElement());
String key = (String) bundleKeys.nextElement();
String value = appName.getString(key);
cookieToBeAdded[i] = new Cookie(("station" + i),(key+":"+ value));
cookieToBeAdded[i].setMaxAge(24*60*60);
logger.error(cookieToBeAdded[i]+"cookieToBeAdded[i]");
// logger.info("cooookies adding to response --- " + cookieToBeAdded[i].getName() + ":" + cookieToBeAdded[i].getValue());
response.addCookie(cookieToBeAdded[i]);
pw.write("<Source>");
pw.write("<name>"+value+"</name>");
pw.write("<id>"+key+"</id>");
pw.write("</Source>");
i++;
}
}
我試圖運行上面的代碼,我收到以下錯誤任何上限:是否有Cookie數量在Java
java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at org.apache.coyote.http11.InternalOutputBuffer.write(InternalOutputBuffer.java:680)
at org.apache.coyote.http11.InternalOutputBuffer.sendStatus(InternalOutputBuffer.java:419)
at org.apache.coyote.http11.Http11Processor.prepareResponse(Http11Processor.java:1588)
at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:934)
at org.apache.coyote.Response.action(Response.java:183)
at org.apache.coyote.Response.sendHeaders(Response.java:379)
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:305)
at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:273)
at org.apache.catalina.connector.Response.finishResponse(Response.java:486)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Thread.java:636)
當我試圖抓住這個例外,它不進入捕獲循環。 我將約8999個值添加到cookie。 Cookie大小是否有限制?
我正在使用JBoss,這是用servlet(Java)編寫的。
請幫忙?
您可能需要爲您的問題添加更多信息。何時發生這種錯誤?你發佈的代碼似乎沒有調用`arrayCopy`,所以我認爲這個錯誤來自其他地方。無論如何,Java不會對cookies有任何限制。 – 2010-12-06 13:46:31
那是什麼令我困惑。實際上,這條線是打印8973次。之後,它給人的錯誤:java.lang.ArrayIndexOutOfBoundsException 在java.lang.System.arraycopy(本機方法) 此錯誤的堆棧跟蹤甚至不包括我在哪裏寫代碼的類的名稱。 – coder 2010-12-06 13:56:39
你使用的是什麼版本的Tomcat? – 2010-12-09 13:33:03