This week's book giveaway is in the Servlets forum.
We're giving away four copies of Murach's Java Servlets and JSP and have Joel Murach on-line!
See this thread for details.
The moose likes Servlets and the fly likes HELP! Servlet calling Applet Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Java » Servlets
Bookmark "HELP! Servlet calling Applet" Watch "HELP! Servlet calling Applet" New topic
Author

HELP! Servlet calling Applet

Dave Donohoe
Ranch Hand

Joined: May 16, 2000
Posts: 73
I have a Servlet calling an applet, but I get a FileNotFoundException.
I call the applet like so -
m_pwOut.print("<APPLET CODE='DavesApplet.class' WIDTH=50 HEIGHT=50 CODEBASE='/applet'>");
The Dir structure in tomcat is like so -
myApp/web-inf/classes/com/davespackage/servlet.class
myApp/applet/DavesApplet.class
And this is the exception I get -
load: class DavesApplet.class not found.
java.lang.ClassNotFoundException: java.io.FileNotFoundException: File not found: http://localhost:8080/applet/DavesApplet/class.class
at sun.plugin.protocol.jdk12.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.HttpURLConnection.getResponseCode(Unknown Source)
at sun.applet.AppletClassLoader.getBytes(Unknown Source)
at sun.applet.AppletClassLoader.access$100(Unknown Source)
at sun.applet.AppletClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at sun.plugin.security.PluginClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Any Ideas???
William Brogden
Author and all-around good cowpoke
Rancher

Joined: Mar 22, 2000
Posts: 12759
    
    5
The reason is that the browser is looking for the applet class files in the wrong place. You need to either:
1. Give a complete URL for the CODE
2. Put a <BASE> tag in the head area of the html page that points to the location of the class files.
I prefer 2 because that also gives the browser where to look for graphics and other resources.
The syntax is:
<BASE HREF="someURL" >
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 15951
    
  19

Semantically speaking, a servlet cannot "call" an applet. The best you can do is have a servlet respond to a request with HTML that causes (we hope!) the user's CLIENT (browser) to request the applet (assuming you're not running "new and improved" Internet Explorer which doesn't have support for that silly old useless Java :roll: (Bill Gate's opinion, not mine).
Files pulled by the browser are pulled in exactly the same way whether they're html, gif, OR jar or classfiles. In other words, the WEB-INF/classes classpath is meaningless to the client. Only the SERVER uses that path. The applet's classes aren't going to be executed on the server, just copied to the client so IT can execute them, so the place to put them is in a copyable directory.
From your sample, I think you got that straight. However, if that a verbatim error message, why is it looking for a class file named "class.class?" I'd check that applet tag again.


Customer surveys are for companies who didn't pay proper attention to begin with.
Meng Tan
Ranch Hand

Joined: Jan 20, 2001
Posts: 115
u can also try using CODEBASE="/myApp/applet".
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: HELP! Servlet calling Applet
 
Similar Threads
Help launching an applet created in Netbeans environment
Applet laoding issue: class not found
Applet not loading due to IOException
ClassDefNotFoundError - wrong name
Applets - web application