偽のチャンクサイズエラーが発生する理由を誰かに教えてもらえますか?
swingToSvltメソッドでの例外:java.io.IOException:偽のチャンクサイズ//-> java.io.IOException:sun.net.www.http.ChunkedInputStream.processRaw(不明なソース)>>の偽のチャンクサイズ.www.http.ChunkedInputStream.readAheadBlocking(Unknown Source)>> at sun.net.www.http.ChunkedInputStream.readAhead(Unknown Source)>> at sun.net.www.http.ChunkedInputStream.read(Unknown Source)>> java.io.FilterInputStream.read(不明なソース)>> sun.net.www.protocol.http.HttpURLConnection $ HttpInputStream.read(不明なソース)>> java.io.ObjectInputStream $ PeekInputStream.read(不明なソース) >> at java.io.ObjectInputStream $ PeekInputStream.readFully(Unknown Source)>> at java.io.ObjectInputStream $ BlockDataInputStream.readUTFBody(Unknown Source)>> at java.io.ObjectInputStream$BlockDataInputStream。readUTF(Unknown Source)>> at java.io.ObjectInputStream.readString(Unknown Source)>> at java.io.ObjectInputStream.readObject0(Unknown Source)>> at java.io.ObjectInputStream.defaultReadFields(Unknown Source)>> at java.io.ObjectInputStream.readSerialData(Unknown Source)>> at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>> at java.io.ObjectInputStream.readObject0(Unknown Source)>> at java.io.ObjectInputStream.readObject(不明なソース)>> atjava.util.ArrayList.readObject(不明なソース)>> atsun.reflect.GeneratedMethodAccessor9.invoke(不明なソース)>> atsun.reflect.DelegatingMethodAccessorImpl.invoke(不明なソース)>>atjava。 lang.reflect.Method.invoke(Unknown Source)>> at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)>>atjava.io.ObjectInputStream。readSerialData(Unknown Source)>> at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>> at java.io.ObjectInputStream.readObject0(Unknown Source)>> at java.io.ObjectInputStream.readObject(Unknown Source)>> at java.util.Hashtable.readObject(Unknown Source)>> at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)>>atjava.lang.reflect.Method。 invoke(Unknown Source)>> at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)>> at java.io.ObjectInputStream.readSerialData(Unknown Source)>> at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>> at java.io.ObjectInputStream.readObject0(Unknown Source)>> at java.io.ObjectInputStream.readObject(Unknown Source)ObjectInputStream.readOrdinaryObject(Unknown Source)>> at java.io.ObjectInputStream.readObject0(Unknown Source)>> at java.io.ObjectInputStream.readObject(Unknown Source)>> at java.util.Hashtable.readObject(Unknown Source)> > at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)>> at java.lang.reflect.Method.invoke(Unknown Source)>>atjava.io。 ObjectStreamClass.invokeReadObject(Unknown Source)>> at java.io.ObjectInputStream.readSerialData(Unknown Source)>> at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>> at java.io.ObjectInputStream.readObject0(Unknown Source)> > java.io.ObjectInputStream.readObject(不明なソース)でObjectInputStream.readOrdinaryObject(Unknown Source)>> at java.io.ObjectInputStream.readObject0(Unknown Source)>> at java.io.ObjectInputStream.readObject(Unknown Source)>> at java.util.Hashtable.readObject(Unknown Source)> > at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)>> at java.lang.reflect.Method.invoke(Unknown Source)>>atjava.io。 ObjectStreamClass.invokeReadObject(Unknown Source)>> at java.io.ObjectInputStream.readSerialData(Unknown Source)>> at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>> at java.io.ObjectInputStream.readObject0(Unknown Source)> > java.io.ObjectInputStream.readObject(不明なソース)でObjectInputStream.readObject0(Unknown Source)>> at java.io.ObjectInputStream.readObject(Unknown Source)>> at java.util.Hashtable.readObject(Unknown Source)>> at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)> > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)>> at java.lang.reflect.Method.invoke(Unknown Source)>> at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)>>atjava.io。 ObjectInputStream.readSerialData(Unknown Source)>> at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>> at java.io.ObjectInputStream.readObject0(Unknown Source)>> at java.io.ObjectInputStream.readObject(Unknown Source)ObjectInputStream.readObject0(Unknown Source)>> at java.io.ObjectInputStream.readObject(Unknown Source)>> at java.util.Hashtable.readObject(Unknown Source)>> at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)> > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)>> at java.lang.reflect.Method.invoke(Unknown Source)>> at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)>>atjava.io。 ObjectInputStream.readSerialData(Unknown Source)>> at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>> at java.io.ObjectInputStream.readObject0(Unknown Source)>> at java.io.ObjectInputStream.readObject(Unknown Source)at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)>> at java.lang.reflect.Method.invoke(Unknown Source)>> at java.io.ObjectStreamClass .invokeReadObject(Unknown Source)>> at java.io.ObjectInputStream.readSerialData(Unknown Source)>> at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>> at java.io.ObjectInputStream.readObject0(Unknown Source)>> java.io.ObjectInputStream.readObject(不明なソース)でat sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)>> at java.lang.reflect.Method.invoke(Unknown Source)>> at java.io.ObjectStreamClass .invokeReadObject(Unknown Source)>> at java.io.ObjectInputStream.readSerialData(Unknown Source)>> at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>> at java.io.ObjectInputStream.readObject0(Unknown Source)>> java.io.ObjectInputStream.readObject(不明なソース)で> at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>> at java.io.ObjectInputStream.readObject0(Unknown Source)>> at java.io.ObjectInputStream.readObject(Unknown Source)> at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>> at java.io.ObjectInputStream.readObject0(Unknown Source)>> at java.io.ObjectInputStream.readObject(Unknown Source)
9859 次
3 に答える
4
コードChunkedInputStream#processRawの306行目から、次のようになります。
/*
* Extract the chunk size from the header (ignoring extensions).
*/
String header = new String(rawData, rawPos, pos-rawPos+1, "US-ASCII");
for (i=0; i < header.length(); i++) {
if (Character.digit(header.charAt(i), 16) == -1)
break;
}
try {
chunkSize = Integer.parseInt(header.substring(0, i), 16);
} catch (NumberFormatException e) {
error = true;
throw new IOException("Bogus chunk size");
}
サーバーが誤ったヘッダーを送信しているようです。送信されている内容を正確に確認し、そこで問題を見つけ始めます。
于 2011-11-11T07:52:33.960 に答える
1
この問題に関連するバグがあったようです。おそらくこれは、データのエンコーディングと入力ストリームで使用されるエンコーディングの不一致に関連しています。以下のバグリンクを参照してください
于 2011-11-11T08:25:13.170 に答える