Hi,

I ran into the following problem:

I have a servlet that reads serialized java objects from a POST request 
called TunnelServlet which is in the global classpath of the server because 
it's a general purpose utility. in addition to that I have a servlet 
DomainAdminTunelServlet in a deployment jar file that extends TunnelServlet 
that uses its serialization capabilities. the classes of the serialized 
objects are known to the DomainAdminTunnelServlet because they are in the 
same deployment jar file. however the readObject call in TunnelServlet 
fails with a ClassNotFoundException (Stacktrace below) if I don't put the 
classes of the serialized objects into the global server classpath which is 
definitely something I don't want to do. Am I doing something wrong here or 
should this work? The strange thing is that writeObject calls to the 
servlet's response output stream work OK.

The setup in short again:

TunnelServlet (loaded via server classpath) delegates calls to extending 
classes via reflection
DomainAdminTunnelServlet extends TunnelServlet (loaded via deployed jar file)
UnitData (implements Serializable and is read from servlet input stream, 
loaded via the same jar file as DomainAdminTunnelServlet)

Any thoughts on that?

thanks,

robert

P.S.: here's the stacktrace: 
com.signal7.procurement.struct.administration.UnitData is in the same jar 
file as the servlet

java.lang.ClassNotFoundException: com.signal7.procurement.struct.administra
tion.UnitData
         at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:981
)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
         at java.io.ObjectInputStream.inputArray(ObjectInputStream.java:951)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:357)
         at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.jav
a:1831)
         at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.ja
va:502)
         at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:116
6)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:232)
         at com.signal7.httptunnel.TunnelServlet.service(TunnelServlet.java:
81)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:324)
         at cv.kt(JAX)
         at cv.forward(JAX)
         at c4.mu(JAX)
         at c.run(JAX)

(-) Robert Kr�ger
(-) SIGNAL 7 Gesellschaft f�r Informationstechnologie mbH
(-) Br�der-Knau�-Str. 79 - 64285 Darmstadt,
(-) Tel: 06151 665401, Fax: 06151 665373
(-) [EMAIL PROTECTED], www.signal7.de

Reply via email to