Problem mit ObjectOutputStream

Hallo,
ich versuche in einem Servlet - nach entsprechender Anfrage eines Applets -
ein DefaultTableModel zu erzeugen, zu serialisieren und ins Netz - Richtung
Applet - zu schicken. Das Applet gibt mir jedoch - nach erfolgter Anfrage -
„InputStream does not contain a serialized object“ aus. Frage ich das
Servlet jedoch über meinen Browser ab, lädt dieser den response als
Textdatei down. Ziehe ich diese nun über einen FileInputStream() in das
Applet hinein, wird das DefaultTableModel gelesen und angezeigt.
Auch nach nächtelangem Stöbern in Google und Konsorten finde ich keine
Antwort darauf.
Kann mir jemand von Euch sagen, was ich falsch mache?

Grüße und Dank für die Hilfe
Stefan
Anbei der Quelltext:

Das Servlet sieht in dem entsprechenden Teil so aus:
public class Testservlet extends HttpServlet implements Serializable
{
Connection myConnection = null;
Statement s;
DatabaseMetaData myDatabaseMetaData = null;
public void init(ServletConfig aConfig) throws ServletException {
super.init(aConfig);
try {
Class.forName(„sun.jdbc.odbc.JdbcOdbcDriver“);
myConnection = DriverManager.getConnection(„jdbc:odbc:smiley:BName“);
}
catch (Exception e)
{;
}
}

public void doGet( HttpServletRequest req, HttpServletResponse res ) throws
ServletException, IOException
{
OutputStream ostream = res.getOutputStream();
String query = req.getParameter(„query“);
String dbquery = null;
String columnames[] = null;
if(query.equals(„userselect“)){
columnames = new String[] {„id“, „username“, „name“, „firstName“,
„nochfirst“, „sondt“};
dbquery = „SELECT * FROM namentabelle“;
} else {
dbquery = null;
columnames = null;
}
if( dbquery != null && (!dbquery.equals(""))) {
DefaultTableModel model = new DefaultTableModel();
try {
ObjectOutputStream os = new ObjectOutputStream(ostream);
os.writeObject(executeQuery(ostream, dbquery, columnames,
model));
os.flush();
os.close();
ostream.flush();
ostream.close();
} catch(Exception ex) {;}
}
}

DefaultTableModel executeQuery(OutputStream stream, String dbquery, String[]
columnames, DefaultTableModel model) throws Exception {

model.setColumnIdentifiers(columnames);
Statement statement = myConnection.createStatement();
dbquery = dbquery.trim();
String lowerQuery = dbquery.toLowerCase();
StringBuffer buf = new StringBuffer();
try {
if (statement.execute(dbquery)) {
ResultSet rs = statement.getResultSet();
ResultSetMetaData rsmd = rs.getMetaData();

Object[] v = new Object[rsmd.getColumnCount()];
while(rs.next()) {

for (int i = 1, max = rsmd.getColumnCount(); i sr #javax.swing.table.DefaultTableModel\´GR"½ý± L columnIdentifierst
Ljava/util/Vector;L
dataVectorq ~ xr $javax.swing.table.AbstractTableModel³Ý8ßÔ  L
listenerListt
%Ljavax/swing/event/EventListenerList;xpsr
#javax.swing.event.EventListenerList±6Æ}"êÖD
xppxsr java.util.VectorÙ-}[?;¯ I capacityIncrementI elementCount[
elementDatat
[Ljava/lang/Object;xp ur [Ljava.lang.Object;ÎXYs)l xp t idt
usernamet namet
firstNamet nochfirstt sondtsq ~ uq ~ sq ~ uq ~
t 1t nname nemae1 disanl dfsat 0sq ~ uq ~ t 2t
sagrgrgt asfafdt afadfdst sdfsfdt 0pppppppp

/////////////////////////////////////
Das Applet fragt etwa so an:

DefaultTableModel LMD() {
DefaultTableModel model = null;
try {
Socket sock = new Socket(„xxx.xxx.xxx.xxx“, 80);
OutputStream out = sock.getOutputStream();
InputStream in = sock.getInputStream();
String s = „GET " + „/path/to/servlet?query=select“ + " HTTP/1.0“ +
„\r\n\r\n“;
out.write(s.getBytes());
int len; applet.showStatus(„connect Database“);
byte[] b = new byte[100];
ObjectInputStream is = new ObjectInputStream(in);
model = (DefaultTableModel)is.readObject();
is.close();
in.close();
out.close();
sock.close();
} catch (Exception ex) { System.out.println(ex.toString());}
return model;
}

An deiner Stelle würde ich die Daten in einem eigenen (selbst geschriebenen) Datencontainer oder -typ transprotieren, den du selbst serialisiert (d.h. writeObject(ObjectOutputstream out) und readObject(ObjectInputStream in) selbst schreiben) hast. Du sparst eine Menge Overhead.

Dein konkretes Problem scheint daran zu liegen, daß du entweder die zu lesenden Objekte nicht instanzierst oder das das Applet die Securety Policy nicht überwindet. Hast du den ObjectInputstream mal auf der Konsole des Browsers visualisiert? sind da die gleichen Class-names drin wie in der auf dem Server liegenden Datei?