オブジェクトをシリアル化し、オブジェクトを逆シリアル化する必要がありますが、次のようになります。
- available() の場合は 0
- read() の場合は -1
readByte() の EOFException
public static Element getCacheObject(String key, String cacheName, String server) throws IOException, ClassNotFoundException, ConnectException { String url = StringUtils.join(new String[] { server, cacheName, key}, "/"); GetMethod getMethod = new GetMethod(url); ObjectInputStream oin = null; InputStream in = null; int status = -1; Element element = null; try { status = httpClient.executeMethod(getMethod); if (status == HttpStatus.SC_NOT_FOUND) { // if the content is deleted already return null; } in = getMethod.getResponseBodyAsStream(); oin = new ObjectInputStream(in); System.out.println("oin.available():" + oin.available()); // returns 0 System.out.println("oin.read():" + oin.read()); // returns -1 element = (Element) oin.readObject(); // returns the object } catch (Exception except) { except.printStackTrace(); throw except; } finally { try { oin.close(); in.close(); } catch (Exception except) { except.printStackTrace(); } } return element; }
ここで何が欠けていますか?