Pessoal,
Obtenho o seguinte erro quando carrego meu Applet no Firefox versão 11.
O mesmo código do meu Applet funciona perfeitamente no IE e no Chrome.
Plug-in Java 1.6.0_31
Usando versão JRE 1.6.0_31-b05 Java HotSpot(TM) Client VM
Diretório base do usuário = C:\Users\roquesantos
----------------------------------------------------
c: limpar janela do console
f: concluir objetos da fila de finalização
g: coleta de lixo
h: exibir esta mensagem de ajuda
l: descartar lista de carregadores de classes
m: imprimir uso de memória
o: registro do disparador
q: ocultar console
r: recarregar configuração da política
s: descartar propriedades do sistema e de implantação
t: descartar lista de threads
v: descartar pilha de threads
x: limpar cache do carregador de classes
0-5: definir nível de rastreamento como <n>
----------------------------------------------------
Exception in thread "AWT-EventQueue-2" java.lang.InternalError: couldn't create component peer
at sun.awt.windows.WComponentPeer.checkCreation(Unknown Source)
at sun.awt.windows.WComponentPeer.<init>(Unknown Source)
at sun.awt.windows.WCanvasPeer.<init>(Unknown Source)
at sun.awt.windows.WPanelPeer.<init>(Unknown Source)
at sun.awt.windows.WWindowPeer.<init>(Unknown Source)
at sun.awt.windows.WFramePeer.<init>(Unknown Source)
at sun.awt.windows.WEmbeddedFramePeer.<init>(Unknown Source)
at sun.awt.windows.WToolkit.createEmbeddedFrame(Unknown Source)
at sun.awt.windows.WEmbeddedFrame.addNotify(Unknown Source)
at sun.plugin2.main.client.PluginEmbeddedFrame.addNotify(Unknown Source)
at sun.awt.windows.WEmbeddedFrame.<init>(Unknown Source)
at sun.plugin2.main.client.PluginEmbeddedFrame.<init>(Unknown Source)
at sun.plugin2.main.client.PluginMain$StartAppletRunner.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$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)
E aqui está o código do meu Applet.
package net.sourceforge.peers.ui;
import java.net.SocketException;
/**
* Applet responsável por fornecer uma interface acessada via JavaScript para efetuar chamadas via SIP.
*
* @author roquesantos
*
*/
public class SipApplet extends JApplet {
private static final long serialVersionUID = -5765954798627359806L;
private AppletThread appletThread;
private AppletManager appletManager;
private SipRequest sipRequest;
private Status status;
private String callTo;
private int event;
@Override
public void start() {
iniciar();
}
@Override
public void stop() {
try {
appletManager.unregister();
} catch (SipUriSyntaxException e) {
}
}
@Override
public void destroy() {
System.exit(0);
}
/**
* Executa as ações necessárias para iniciar a applicação.
*/
private void iniciar() {
status = new Status(this);
try {
appletManager = AppletManager.getInstance(this, config());
} catch (SocketException e) {
}
setEvent(0);
appletThread = new AppletThread(this);
appletThread.start();
}
/**
* Método que lê os parametros passados no applet e seta os respectivos valores no {@link PeersConfig}
*/
private PeersConfig config() {
PeersConfig peersConfig = new PeersConfig();
peersConfig.setUser_part(getParameter("userpart"));
peersConfig.setPassword(getParameter("password"));
peersConfig.setDomain(getParameter("domain"));
peersConfig.setOutbound_proxy(getParameter("outbound_proxy"));
peersConfig.setAddress(getParameter("address"));
peersConfig.setSip_port(getParameter("port"));
peersConfig.setMedia_mode(getParameter("mediaMode"));
peersConfig.setMedia_debug(getParameter("mediaDebug"));
peersConfig.setRtp_port(getParameter("rtp_port"));
return peersConfig;
}
/**
* Método que manipula os eventos disparados pelo usuário de acordo com o código informado.
*
* @param event
*/
void handleEvent(int event) {
switch (event) {
case 102:
appletManager.call(callTo);
break;
case 103:
appletManager.hangup(sipRequest);
break;
case 104:
appletManager.pickup(sipRequest);
break;
case 105:
appletManager.busyHere(sipRequest);
break;
default:
break;
}
}
/* ========== Inicio: Getters e Setters ========== */
public AppletManager getAppletManager() {
return appletManager;
}
public void setSipRequest(SipRequest sipRequest) {
this.sipRequest = sipRequest;
}
public SipRequest getSipRequest() {
return sipRequest;
}
public Status getStatus() {
return status;
}
public void setCallTo(String callTo) {
this.callTo = callTo;
}
public void setEvent(int event) {
this.event = event;
}
public int getEvent() {
return event;
}
/* ========== Fim: Getters e Setters ========== */
}
/**
* {@link Thread} responsável por executar os métodos de chamada dispostos no Applet.
*
* @author roquesantos
*
*/
class AppletThread extends Thread {
public SipApplet applet;
public AppletThread(SipApplet sipApplet) {
applet = sipApplet;
}
@Override
public void run() {
try {
applet.getAppletManager().register();
} catch (SipUriSyntaxException e) {
}
while (true) {
if (applet.getEvent() != 0) {
applet.handleEvent(applet.getEvent());
applet.setEvent(0);
}
try {
Thread.sleep(300);
} catch (InterruptedException e) { }
}
}
}
Obrigado !