ClassNotFoundException durante il caricamento dell'applet nell'applicazione Web Java


Sto cercando di distribuire l'applicazione Web Java (Spring, Hibernate, Maven, Tomcat, WinXP) con un'applet molto semplice, ma quando apro la pagina jsp con questa applet vedo ClassNotFountException Errore.

La struttura del mio progetto (distribuito):

myApp     
|--META-INF
|--WEB-INF
   |--classses
      |--ru
         |--mydomain
            |--applet
               |--FileChooserApplet.class
   |--views
      |--main.jsp
      |--index.html
|--resources

FileChooserApplet.classe :

package ru.mydomain.applet;

import java.applet.Applet;

public class FileChooserApplet extends Applet {

    @Override
    public void paint(java.awt.Graphics g) {
        g.drawString("Weather is good!", 70, 70);
    }
}

Principale.jsp:

...
<body>
   <APPLET code="ru.mydomain.applet.FileChooserApplet.class"
           codebase="../classes" width=350 height=200></APPLET>
...
</body>
..

Ho provato a cambiare l'attributo codebase in:

  • " classi"
  • "/classi"
  • ""
  • elimina questo attributo

Ma, se aggiungo lo stesso codice per l'applet all'indice .html e fare doppio clic su questo file (URL nel browser inizia con file:///C:/projects/myApp/target/myApp/...) quindi l'applet funziona.

Author: Mikhail Panteleev, 2013-07-25

1 answers

AFAIK l'applet non avrà accesso ai file di classe in WEB-INF/classes. Queste classi sono accessibili solo da risorse lato server come servlet (al contrario di contenuti scaricabili / statici).

È possibile eseguire il jar di tutta la classe richiesta per l'applet e posizionare il file JAR nella cartella views. Il tag dell'applet sarà simile a

<APPLET code="ru.mydomain.applet.FileChooserApplet.class" 
        archive="mynewjar.jar"
        width=350 height=200>
</APPLET>

Un singolo file JAR è un modo più pulito per eseguire le distribuzioni.

 4
Author: Reimeus, 2014-02-06 12:28:43