I’m writing a status checker, it is a java web-start applet. I can run it on my computer and it will run just fine, however; when I run it on a web page I get the runtime error java.lang.reflect.InvocationTargetException. This is the html file I’m using to run the jar file
<html>
<head>
<applet code="StatusCheckerMain" width=380 height=172 archive="Launch.jar">
<param name="servername"
value="Evolution-X"/>
<param name="ip"
value="127.0.0.1"/>
<param name="port"
value="43594"/>
Java is not installed on your machine or your browser does not allow Java Web-Start Applets to run.<br /><br />Get the latest Java technology at <a href="http://www.java.com/">http://www.Java.com/</a>
</applet>
</head>
</html>
And this is my source file
import java.awt.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
/**
*
* @author Dan
*/
public class GUIChecker extends JApplet {
public GUIChecker() { }
public void init() {
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}
private String getServerName() {
if (isActive()) {
return (getParameter("servername"));
} else {
return "Default";
}
}
private String getIP() {
if (isActive()) {
return (getParameter("ip"));
} else {
return "localhost";
}
}
private int getPort() {
if (isActive()) {
return (Integer.parseInt(getParameter("port")));
} else {
return 43594;
}
}
private boolean checkOnline(String ip, int port) throws UnknownHostException, IOException {
try {
Socket sock = new Socket(ip, port);
return sock.isConnected();
} catch (ConnectException e) {
return false;
}
}
private String getConnection(String ip, int port) throws UnknownHostException, IOException {
try {
Socket sock = new Socket(ip, port);
return (sock.isConnected() ? "ONLINE" : "OFFLINE");
} catch (ConnectException e) {
return ("OFFLINE");
}
}
@SuppressWarnings("unchecked")
private void initComponents() {
jScrollPane1 = new JScrollPane();
jTextArea1 = new JTextArea();
setVisible(true);
jTextArea1.setEditable(false);
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
try {
Font font = new Font("Verdana", Font.BOLD, 12);
if (checkOnline(getIP(), getPort())) {
jTextArea1.setForeground(Color.GREEN);
} else {
jTextArea1.setForeground(Color.RED);
}
jTextArea1.setFont(font);
jTextArea1.setText(getServerName()+" IP: "+getIP()+" on port: "+getPort()+" is currently: "+getConnection(getIP(), getPort()));
} catch (IOException e) {
e.printStackTrace();
}
GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, GroupLayout.DEFAULT_SIZE, 385, Short.MAX_VALUE)
.addContainerGap())
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(0, 11, Short.MAX_VALUE)
.addComponent(jTextArea1, GroupLayout.PREFERRED_SIZE, 383, GroupLayout.PREFERRED_SIZE)
.addGap(0, 11, Short.MAX_VALUE)))
);
layout.setVerticalGroup(
layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, GroupLayout.DEFAULT_SIZE, 121, Short.MAX_VALUE)
.addContainerGap())
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(0, 12, Short.MAX_VALUE)
.addComponent(jTextArea1, GroupLayout.PREFERRED_SIZE, 119, GroupLayout.PREFERRED_SIZE)
.addGap(0, 12, Short.MAX_VALUE)))
);
validate();
}
private JScrollPane jScrollPane1;
private JTextArea jTextArea1;
}

There is no error when running it on my desktop, but when I run it on my webpage this is all I get.
Clear classloader cache ... completed.
Trace level set to 5: all ... completed.basic: Added progress listener: sun.plugin.util.ProgressMonitorAdapter@844c3d
basic: Plugin2ClassLoader.addURL parent called for file:/C:/Users/Dan/Desktop/Evolution-X/Evolution-X%20639/Evolution-X%20%20639%20Server/Evolution-X%20639%20Server/Evolution-X%20639%20Server/SocketsTest/TestConnection/bin/
network: Cache entry not found [url: file:/C:/Users/Dan/Desktop/Evolution-X/Evolution-X%20639/Evolution-X%20%20639%20Server/Evolution-X%20639%20Server/Evolution-X%20639%20Server/SocketsTest/TestConnection/bin/, version: null]
network: Cache entry not found [url: file:/C:/Users/Dan/Desktop/Evolution-X/Evolution-X%20639/Evolution-X%20%20639%20Server/Evolution-X%20639%20Server/Evolution-X%20639%20Server/SocketsTest/TestConnection/bin/, version: null]
basic: exception: java.lang.reflect.InvocationTargetException.
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.runOnEDTAndWait(Unknown Source)
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.instantiateApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
at com.sun.deploy.uitoolkit.impl.awt.OldPluginAWTUtil.invokeAndWait(Unknown Source)
... 5 more
Caused by: java.lang.ClassCastException: StatusCheckerMain cannot be cast to java.applet.Applet
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
basic: Removed progress listener: sun.plugin.util.ProgressMonitorAdapter@844c3d
security: Reset deny session certificate store
basic: Dialog type is not candidate for embedding
The applet element is for loading classes of type
JAppletandApplet, whereas the code is aJFrame.So start with something like this.
Update
The important line in the stack trace is:
This is quite strange.
JAppletextendsApplet– so it can be cast.Make absolutely sure the new Jar is being copied to whatever place the code is being run from. Also try starting a new project and see if you can get the code I posted to launch as an applet on your machine. If not, it indicates a more fundamental problem.