Applet não encontrado

6 respostas
G

Bom dia, estou com problemas no classpath para carregar um applet em uma aplicação com Struts mas não estou tendo muita sorte.
O meu applet esta na pasta WEB-INF/classes/br/com/empresa/projeto/Grafico.class a a JSP esta na pasta WEB-INF/jsp/grafico.jsp com o seguinte codigo

<APPLET CODE=“Grafico.class” alt=“Gráfico de Avalição de Resultados” WIDTH=" 400" HEIGHT=“400”>

E quando efetua a chamada da url no console do java aparece a seguinte mensagem

java.lang.NoClassDefFoundError: GraficoServlet (wrong name: br/com/empresa/projeto/GraficoServlet)

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(Unknown Source)

at java.security.SecureClassLoader.defineClass(Unknown Source)

at sun.applet.AppletClassLoader.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)

Att,

Gonçalo.

6 Respostas

B

Ola,

No atributo CODE tente colocar o path completo para a classe, que seria:
br.com.empresa.projeto.Grafico.class

G

Bom dia Bruno,

Segui o seu conselho, mas agora aparece este erro!!

Java Plug-in 1.5.0_11
Using JRE version 1.5.0_11 Java HotSpot™ Client VM


c: clear console window
f: finalize objects on finalization queue
g: garbage collect
h: display this help message
l: dump classloader list
m: print memory usage
o: trigger logging
p: reload proxy configuration
q: hide console
r: reload policy configuration
s: dump system and deployment properties
t: dump thread list
v: dump thread stack
x: clear classloader cache
0-5: set trace level to <n>

load: class br.com.empresa.projeto.Grafico.class not found.

java.lang.ClassNotFoundException: br.com.empresa.projeto.Grafico.class

at sun.applet.AppletClassLoader.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)

Caused by: java.io.IOException: open HTTP connection failed.

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)

 10 more
B

Ola,

A classe Grafico estende de java.awt.Applet né?

G

Não, ela estende a classe javax.swing.JApplet

Se eu abro um html com o .class na mesma pasta o applet funciona, o problema ocorre quando eu coloco no tomcat e tento acessá-lo.

Segue abaixo o código da classe.

package br.com.empresa.projeto;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.Graphics2D;

import javax.swing.JApplet;

public class GraficoServlet extends JApplet {

/**
 * serialVersionUID
 */
private static final long serialVersionUID = -5887227696615148922L;

public void init() {

}

public void paint(Graphics g) {
	Graphics2D g2d = (Graphics2D) g;
	g2d.setColor(Color.BLACK);
	g2d.drawLine(50, 20, 50, 350);
	g2d.drawLine(125, 50, 125, 350);
	g2d.drawLine(200, 50, 200, 350);
	g2d.drawLine(275, 50, 275, 275);
	g2d.drawLine(350, 50, 350, 350);

	g2d.drawLine(50, 350, 380, 350);
	g2d.drawLine(50, 275, 350, 275);
	g2d.drawLine(125, 200, 350, 200);
	g2d.drawLine(200, 125, 350, 125);
	g2d.drawLine(50, 125, 125, 125);
	g2d.drawLine(50, 50, 350, 50);

	int[] x1 = { 45, 50, 55, 45 };
	int[] y1 = { 20, 10, 20, 20 };
	g2d.fillPolygon(x1, y1, 3);

	int[] x2 = { 380, 390, 380, 380 };
	int[] y2 = { 345, 350, 355, 345 };
	g2d.fillPolygon(x2, y2, 3);

	g2d.setFont(new Font("SansSerif", Font.BOLD, 10));
	int valor = 16;
	int coluna = 65;
	for (int x = 0; x &lt; 4; x++) {
		int linha = 350;
		for (int y = 0; y &lt; 4; y++) {
			if (valor &gt;= 10) {
				linha -= 17;
			} else {
				linha -= 10;
			}
			g2d.drawString(valor + "", linha, coluna);
			if (valor &gt;= 10) {
				linha += 7;
			}
			valor--;
			linha -= 65;
		}
		coluna += 75;
	}
	g2d.drawString("25%", 75, 365);
	g2d.drawString("50%", 150, 365);
	g2d.drawString("75%", 225, 365);
	g2d.drawString("100%", 297, 365);

	g2d.drawString("25%", 20, 90);
	g2d.drawString("50%", 20, 165);
	g2d.drawString("75%", 20, 240);
	g2d.drawString("100%", 15, 315);

	g2d.setColor(Color.RED);
	g2d.fillArc(120, 180, 10, 10, 0, 360);
}

}

B

Ola,

Não lembro direito sobre se a applet consegue “enxergar” o classpath do contexto no tomcat… acho que não… então vc precisaria colocar a classe junto da página mesmo :)… mas não me lembro mesmo…

G

Eu consegui resolver o problema… coloquei o arquivo em um diretório fora do WEB-INF.

Valeu pela ajuda.

Criado 1 de março de 2007
Ultima resposta 1 de mar. de 2007
Respostas 6
Participantes 2