This week's book giveaway is in the Cloud/Virtualization forum.
We're giving away four copies of Learning OpenStack Networking: Build a solid foundation in virtual networking technologies for OpenStack-based clouds and have James Denton on-line!
See this thread for details.
Win a copy of Learning OpenStack Networking: Build a solid foundation in virtual networking technologies for OpenStack-based clouds this week in the Cloud/Virtualization forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Liutauras Vilda
  • Campbell Ritchie
  • Tim Cooke
  • Bear Bibeault
  • Devaka Cooray
Sheriffs:
  • Jeanne Boyarsky
  • Knute Snortum
  • Junilu Lacar
Saloon Keepers:
  • Tim Moores
  • Ganesh Patekar
  • Stephan van Hulst
  • Pete Letkeman
  • Carey Brown
Bartenders:
  • Tim Holloway
  • Ron McLeod
  • Vijitha Kumara

receiving serialized object from servlet to applet  RSS feed

 
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi

I am trying to retrieve an object from servlet to applet. When I try to run my applet I get this exception:

java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2165)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2634)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:734)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:253)
at cmsapplet.applet.DisplayFileExplorerApplet.getIFileComposite(Unknown Source)
at cmsapplet.applet.DisplayFileExplorerApplet.init(Unknown Source)
at sun.applet.AppletPanel.run(AppletPanel.java:348)
at java.lang.Thread.run(Thread.java:536)

I have no idea what is causing this exception. I have searched the net for some clues but didn't find anything that makes sense.

Here is my code for applet:
public class DisplayFileExplorerApplet extends JApplet{

IFileComposite m_composite;

/**
* This is invoked when the applet is called.
*/
public void init(){

try {
Container contentPane = this.getContentPane();
m_composite = this.getIFileComposite();

FileExplorer fexplorer = new FileExplorer(m_composite);
contentPane.add(fexplorer);

}
catch(MalformedURLException e){
e.printStackTrace();
}
catch(IOException e){
e.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
}// end of init()

/**
* This method gets a HttpURLConnection.
* @return HttpURLConnection: the connection.
* @throws MalformedURLException
* @throws IOException
*/

private HttpURLConnection getServletConnection() throws MalformedURLException,
IOException{

String host = "Http://localhost:8020/cms/FileCompositeServlet";
URL urlServlet = new URL(host);
HttpURLConnection con = (HttpURLConnection)urlServlet.openConnection();

con.setDoInput(true);

con.setDoOutput(true);

con.setUseCaches(false);

con.setRequestMethod("POST");
con.setRequestProperty("Content-Type",
"application/x-java-serialized-object");


return con;
}

/**
* Returns an IFileComposite object that was retrieved from the servlet.
* @return IFileComposite: the file composite containing all the relevent information
* @throws IOException
*/

private IFileComposite getIFileComposite() throws IOException{
System.err.println("inside getIFileComposite method in DisplayFileExplorerApplet");

try{
URLConnection con = getServletConnection();

con.connect();
InputStream instrm = con.getInputStream();

ObjectInputStream inputFromServlet = new ObjectInputStream(instrm);

IFileComposite result = (IFileComposite) inputFromServlet.readObject();
inputFromServlet.close();
instrm.close();

return result;
}
catch(ClassNotFoundException e){
System.err.println("class not found exception.");
e.printStackTrace();
}

return null;

}

}// end of FileExplorerApplet

And the code for servlet:
public class FileCompositeServlet extends HttpServlet{
private IFileComposite m_composite;
private FileService fService;
private final String root = "f:/MSc_project/example_website";

/**
* This method received http request from the DisplayFileExplorer applet
* and creates an IFileComposite object for a specified home directory.
* It then sends the IFileComposite object back to the calling applet.
*
* @param request: the request
* @param response: the response
*
* @throws ServletException
* @throws IOException
*/
public void doPost(
HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {

try{
response.setContentType("application/x-java-serialized-object");

String root = new String("f:/example-website");
// now call FileService.getFileHierarchy method
boolean isRoot = true;
fService = FileService.getInstance();
m_composite = fService.getFileHierachy(root, isRoot);

// return the composite object back to calling applet
OutputStream outputStream = response.getOutputStream();
ObjectOutputStream objOutStr = new ObjectOutputStream(outputStream);
objOutStr.writeObject(m_composite);
objOutStr.flush();
objOutStr.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}

Can someone point me to the right direction please???

Thanks

Su
 
su ferrente
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I manage to sort out the problem. It was my FileService class that the servlet was calling giving NullPointerException because I was trying to get the length of my ArrayList which could be null.
 
Don't get me started about those stupid light bulbs.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!