title: Java/HTML - InvocationTargetException thrown
body: <p>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</p>
  
  <pre><code>&lt;html&gt;
      &lt;head&gt;
          &lt;applet code="StatusCheckerMain" width=380 height=172 archive="Launch.jar"&gt;
              &lt;param name="servername"
                      value="Evolution-X"/&gt;
              &lt;param name="ip"
                      value="127.0.0.1"/&gt;
              &lt;param name="port"
                      value="43594"/&gt;
              Java is not installed on your machine or your browser does not allow Java Web-Start Applets to run.&lt;br /&gt;&lt;br /&gt;Get the latest Java technology at &lt;a href="http://www.java.com/"&gt;http://www.Java.com/&lt;/a&gt;
          &lt;/applet&gt;
      &lt;/head&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>And this is my source file</p>
  
  <pre><code>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;
  }
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/LJgMz.png" alt="enter image description here">
  There is no error when running it on my desktop, but when I run it on my webpage this is all I get.</p>
  
  <pre><code>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
  </code></pre>