System.out.println("callGetItems");
String urlname=request.getParameter("urlname");
java.sql.ResultSet result=server.getItemList(urlname);
try
{
ObjectOutputStream oos=new
ObjectOutputStream(response.getOutputStream()); // This is where the
exception is thrown
oos.writeObject(result);
oos.flush();
}
catch(IOException e)
{
System.out.println("IOException at callGetItems() :
"+e.getMessage());
}
The error message that I get is the following:
java.lang.IllegalStateException: can't mix text and binary input
at
sun.servlet.http.HttpResponse.getOutputStream(HttpResponse.java:436)
at EnominationServlet.callGetItems(EnominationServlet.java:124)
at EnominationServlet.doGet(EnominationServlet.java:47)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:499)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at
sun.servlet.http.HttpServerHandler.sendResponse(HttpServerHandler.jav
a:165)
at
sun.servlet.http.HttpServerHandler.handleConnection(HttpServerHandler
.java:121)
at
sun.servlet.http.HttpServerHandler.run(HttpServerHandler.java:90)
at java.lang.Thread.run(Thread.java:479)
Thanks for any comments that may help me!!!!
E.T.
private void callGetItems()
{
response.setContentType("binary");
String urlname=request.getParameter("urlname");
java.sql.ResultSet result=server.getItemList(urlname);
try
{
ObjectOutputStream oos=new ObjectOutputStream(response.getOutputStream());
oos.writeObject(new Vector()); // a Vector cuz ResultSet is not serializable so
will have to write a custom class
oos.flush();
}
catch(IOException e)
{
System.out.println("IOException at callGetItems() : "+e.getMessage());
}
}
************************ Code on the client side reading the object from the socket
InputStream is=socket.getInputStream();
PrintWriter writer=new PrintWriter(out);
writer.print("GET /servlet/EnominationServlet");
writer.print("?type=getitems&urlname=www.bmw.com");
writer.print(" HTTP/1.0\r\n\r\n");
writer.flush(); // This sends the request now!!!
try
{
ObjectInputStream ois=new ObjectInputStream(is); // This is where the exception
is thrown
System.out.println("MainTest.main about to read object");
Vector v=(Vector)ois.readObject();
System.out.println("MainTest.main object read");
ois.close();
}
catch(Exception e)
{
System.out.println("exception at main - "+e.getMessage());
}
The error message is:
exception at main - InputStream does not contain a serialized object
Nilesh Parab wrote:
> Are you calling response.getWriter() somewhere before calling
> response.getOutputStream(). Doing that will give you the IllegalStateException.
>
> - Nilesh