You need to make sure you make your object serializable (implement Serializable or Externalizable).<br><br>gw<br><br><div><span class="gmail_quote">On 4/6/07, <b class="gmail_sendername">janicellh</b> &lt;<a href="mailto:janicellh@gmail.com">
janicellh@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi,<br><br>I am planning to use the Java MemCached Client from your website to
<br>store a complex and serialized object into MemCached Server. However,<br>it only works for String data type but not any other user-defined<br>object. Please advice. I would appreaciate if you could help me to<br>resolve the issue ASAP.
<br><br>I think the problem will probably caused at the following line whereby<br>the client trying to read the value character by character:<br><br>ByteArrayOutputStream bos = new ByteArrayOutputStream();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boolean eol = false;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while ( in.read( b, 0, 1 ) != -1 ) {<br><br><br>I have downloaded the java_memcached-release_1.5.1.jar from<br><a href="http://www.whalin.com/memcached/#download">http://www.whalin.com/memcached/#download
</a>.<br><br>Here is the example of the object to be stored:<br><br>UserRecord ur = new UserRecord();<br>ur.setId(&quot;test&quot;);<br>ur.setName(&quot;test&quot;);<br>List&lt;Role&gt; ls = new ArrayList&lt;Role&gt;();<br>
Role r = new Role(1, &#39;admin&#39;);<br>ls.add(r);<br>r = new Role(1, &#39;user&#39;);<br>ls.add(r);<br>ur.setRoles(ls);<br><br><br>Below is the recap from console output:<br>---------------------------------------------------------------------------------
<br><br>DEBUG --- SockIOPool.initialize(509) | ++++ initializing pool with<br>following settings:<br>DEBUG --- SockIOPool.initialize(510) | ++++ initial size: 3<br>DEBUG --- SockIOPool.initialize(511) | ++++ min spare&nbsp;&nbsp; : 3
<br>DEBUG --- SockIOPool.initialize(512) | ++++ max spare&nbsp;&nbsp; : 10<br>DEBUG --- SockIOPool.initialize(533) | ++++ added <a href="http://127.0.0.1:11211">127.0.0.1:11211</a> to<br>server bucket<br>DEBUG --- SockIOPool.initialize
(537) | +++ creating initial<br>connections (3) for host: <a href="http://127.0.0.1:11211">127.0.0.1:11211</a><br>DEBUG --- SockIOPool.createSocket(643) | ++++ created socket<br>(Socket[addr=/127.0.0.1,port=11211,localport=4608]) for host:
<br><a href="http://127.0.0.1:11211">127.0.0.1:11211</a><br>DEBUG --- SockIOPool.initialize(547) | ++++ created and added socket:<br>Socket[addr=/127.0.0.1,port=11211,localport=4608] for host<br><a href="http://127.0.0.1:11211">
127.0.0.1:11211</a><br>DEBUG --- SockIOPool.createSocket(643) | ++++ created socket<br>(Socket[addr=/127.0.0.1,port=11211,localport=4611]) for host:<br><a href="http://127.0.0.1:11211">127.0.0.1:11211</a><br>DEBUG --- SockIOPool.initialize
(547) | ++++ created and added socket:<br>Socket[addr=/127.0.0.1,port=11211,localport=4611] for host<br><a href="http://127.0.0.1:11211">127.0.0.1:11211</a><br>DEBUG --- SockIOPool.createSocket(643) | ++++ created socket<br>
(Socket[addr=/127.0.0.1,port=11211,localport=4612]) for host:<br><a href="http://127.0.0.1:11211">127.0.0.1:11211</a><br>DEBUG --- SockIOPool.initialize(547) | ++++ created and added socket:<br>Socket[addr=/127.0.0.1,port=11211,localport=4612] for host
<br><a href="http://127.0.0.1:11211">127.0.0.1:11211</a><br>DEBUG --- SockIOPool.getSock(703) | cache socket pick<br>http%253A%252F%252Fphishing.filter.test%252Flookup null<br>DEBUG --- SockIOPool.getConnection(885) | ++++ moving socket for host
<br>(<a href="http://127.0.0.1:11211">127.0.0.1:11211</a>) to busy pool ... socket:<br>Socket[addr=/127.0.0.1,port=11211,localport=4612]<br>INFO --- MemCachedClient.set(647) | ++++ serializing for key:<br>http%253A%252F%252Fphishing.filter.test%252Flookup for class:
<br>com.fsecure.nrs.litmus.url.model.UrlRecord<br>ERROR --- MemCachedClient.set(719) | ++++ exception thrown while<br>writing bytes to server on set<br>ERROR --- MemCachedClient.set(720) | ++++ Stream appears to be dead,<br>
so closing it down<br>java.io.IOException: ++++ Stream appears to be dead, so closing it down<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at com.danga.MemCached.SockIOPool$SockIO.readLine(SockIOPool.java:1580)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at com.danga.MemCached.MemCachedClient.set
(MemCachedClient.java:700)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at com.danga.MemCached.MemCachedClient.set(MemCachedClient.java:423)<br>DEBUG --- SockIOPool$SockIO.trueClose(1441) | ++++ Closing socket for<br>real: Socket[addr=/127.0.0.1,port=11211,localport=4612]
<br>DEBUG --- SockIOPool.checkIn(1036) | ++++ calling check-in on socket:<br>Socket[addr=/127.0.0.1,port=11211,localport=4612] for host:<br><a href="http://127.0.0.1:11211">127.0.0.1:11211</a><br>DEBUG --- SockIOPool.checkIn
(1041) | ++++ removing socket<br>(Socket[addr=/127.0.0.1,port=11211,localport=4612]) from busy pool for<br>host: <a href="http://127.0.0.1:11211">127.0.0.1:11211</a><br><br>--<br><br>Thanks.<br><br><br>Regards,<br>Janice Lee
<br><br></blockquote></div><br><br clear="all"><br>-- <br>Greg Whalin