Hi,I am a freshman on java,Could you help me.
I have a servlet and a postgres data base on a solaris 8 work station.
I have an applet that sends an object (a serialize class vector )to
the servlet,then the servlet saves that information to the postgres data
base.
If I run the applet and the servlet on same work station,they work well.
But if I run the applet on a another computer (PC or Unix work station).
The Servlet always failed ,in geting a objectinputstream interface and
catch a ERROR:
<<java.io.StreamCorruptedException: Caught EOFException while reading
the stream header>>
I think maybe there is a delay from another computer.so when I catch the
error,I try 3 time
again,but I still fail.
MY APPLET :
public class Draw extends Applet
implements ActionListener,ItemListener,MouseMotionListener,MouseListener{
Vector obj;
-------------------------
try{
labtext.setText("Save Data $B!%!%!% (B");
String
data="/mkalm/servlet/mkalm.mkAlm0Servlet?Savefilename="+filename.getText();
URL url=new URL(getCodeBase(),data);
URLConnection con=url.openConnection();
System.out.println("SAVE CONNECT OK FILE URL Size:"+obj.size());
con.setRequestProperty("CONTENT_TYPE","application/octet-stream");
con.setUseCaches(false);
con.setDoInput(true);
con.setDoOutput(true);
ObjectOutputStream oos=new
ObjectOutputStream(con.getOutputStream());
NewVector out_vector = new NewVector((Vector)obj);
oos.writeObject( out_vector );
oos.flush();
ObjectInputStream ois = new
ObjectInputStream(con.getInputStream());
String answer = (String)ois.readObject();
oos.close();
ois.close();
labtext.setText(" ");
}
catch(Exception evt){
System.out.println("SAVE FILE URL Error"+evt);
evt.printStackTrace();
}
}
> > -------------------------------
Servlet:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
public class mkAlm0Servlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
Connection con = null;
Statement stmt = null;
PreparedStatement ps = null;
ObjectInputStream ois = null;
Vector vector_out = new Vector();
String ask;
String almfile = new String(request.getParameter("Savefilename"));
System.out.println("SAVE ALM SERVLET");
try {
int flg = 0;
for(int t=0;t<3;t++){
try {
ois = new
ObjectInputStream(request.getInputStream());//Always fail at here
}catch (EOFException e) {
flg = 1;
System.out.println("DB Save error:" + e);
}catch (StreamCorruptedException e) {
flg = 2;
System.out.println("DB Save error:" + e);
}catch (Exception e) {
System.out.println("DB Save ERRPR:"+e);
}finally{
if(flg > 0){
System.out.println("DB Save Continue");
continue;
}
else
break;
}
}
System.out.println(" Can Read byte:" + ois.available());
NewVector in_vector = (NewVector)ois.readObject();
Vector vector_in = (Vector)in_vector.toVector();
try {
Class.forName("org.postgresql.Driver");
String jdbnm = "jdbc:postgresql://192.168.0.206/" + almfile;
con = DriverManager.getConnection(jdbnm,
"postgres","postgres");
String pscmd = "insert into " + almfile + "( almline )
values ( ? )";
ps = con.prepareStatement( pscmd );
stmt = con.createStatement();
}catch (Exception e) {
System.out.println("DB connect ERRPR:"+e);
}
}
-------
Serialisize Class:
import java.io.*;
import java.util.*;
public class NewVector implements Serializable {
Vector data;
public NewVector( Vector invector){
data = invector;
}
public Vector toVector(){
return data;
}
}
-------------------
[EMAIL PROTECTED]
___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".
Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html