Erro no Console!

E ae Galera,

Preciso de uma ajuda:

Assinei meu applet normalmente, já to até craque nisso ahahha, mas como já estou com bem classes eu saberia que se desse tudo certo seria bom demais pra ser verdade hauhaua…
O problema é o seguinte: Assinei o applet executando todos os passos, assinando todas as classes e quando abro o HTMl que contem o .jar assinado e após eu clicar em Always na telinha do certificado, ocorre o seguinte erro no Console:

java.lang.SecurityException: class "Principal$ProdutosTableModel"'s signer information does not match signer information of other classes in the same package at java.lang.ClassLoader.checkCerts(Unknown Source) at java.lang.ClassLoader.preDefineClass(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(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 java.lang.ClassLoader.loadClassInternal(Unknown Source) at Principal.<init>(Principal.java:53) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(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)

Lembrando que em meu arquivo .policy eu coloquei AllPermissions.

Alguém sabe o que é esse maldito erro?

Valeu! 8)

Isso costuma ocorrer porque você esqueceu de incluir uma classe (acho que o nome do .class é Principal$ProdutosTableModel.class ) no seu jar.
Quando isso ocorre, o plugin tenta pegar de algum lugar - mas quando isso ocorre, a assinatura não vai bater porque ele não leu o .class do seu jar, e sim de algum outro lugar - talvez do tratamento de um erro 404.

Se o seu programa não fosse assinado, provavelmente você teria um erro esquisitíssimo se o erro 404 - Page Not Found fosse tratado por uma página customizada, em vez de deixar o default. É que nesse caso ia aparecer o erro “Invalid Magic Number” que ocorre porque o plugin procura a classe, não acha, pede um arquivo .class então, e como não está cadastrado no site, vai obter um erro 404. Mas como o tratamento de erros 404 normalmente é feito por uma página, o plugin recebe um arquivo HTML (em vez de ser um .class), que deve começar com “<html” ou outra coisa parecida, não por “0xCAFEBABE” que é o caso dos arquivos .class.

Mas como é assinado, aparece esse outro erro (que seria algo como “assinatura não confere”), porque o plugin nesse caso primeiro checa a assinatura e depois carrega a classe, se a assinatura estiver OK.>

Vou tentar assinar novamente e ver no que dá…valeu!!!

realmente aquela hora acho que por algum vacilo aqui esqueci da TableModel, porém olhe agora:

java.lang.NoClassDefFoundError: javax/mail/MessagingException at Principal.init(Principal.java:431) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

E agora conferi e reconferi para ver se peguei todas hauhau…mas dá esse erro.

O dureza… :lol:

Valeu! 8)

Aqui está o locoal em minha aplicação onde eu envio e-mail, que é onde tem o erro eu acho:

[code]try {
// Inicia sessão para o e-mail
Properties props = new Properties();
// Ajusta servidor SMTP de mail
props.put(“mail.smtp.host”, servidorSMTP);
Session sessao = Session.getDefaultInstance(props, null);

				 MimeMessage message = new MimeMessage(sessao); message.setFrom(new InternetAddress(remetente,"Paulo Roberto"));  message.addRecipient(Message.RecipientType.TO, new InternetAddress(destinatario)); 
				 if (copia.equals("")==false)
				      { message.addRecipient(Message.RecipientType.CC, new InternetAddress(copia)); }
			 					 
				 message.setSubject(assunto); 
				
				 MimeMultipart mp = new MimeMultipart();
				 message.setContent(mp);
				 					 
				 FileDataSource ds = new FileDataSource("\\assinarapplet.pdf");
				 FileDataSource ds2 = new FileDataSource("\\apostila.zip");
				 MimeBodyPart mbp = new MimeBodyPart();
				 MimeBodyPart msg = new MimeBodyPart();
				 MimeBodyPart mbp2 = new MimeBodyPart();
				 String name = "assinarapplet.pdf";
				 String name2 = "apostila.zip";
				 mbp.setFileName(name);
				 mbp2.setFileName(name2);
				 msg.setText(mensagemCorreio);
				 mbp.setDataHandler( new DataHandler(ds) );
				 mbp2.setDataHandler( new DataHandler(ds2) );
				 mp.addBodyPart(mbp);
				 mp.addBodyPart(mbp2);
				 mp.addBodyPart(msg);
				 					 
				 // Envia messagem 
				 Transport.send(message);
				}

				catch (AddressException ex)
				{
				    String mensagemErro = "Endereço(s) e-mail inválidos.Mensagem:" + ex.getMessage();
				}
				catch (MessagingException ex) 
				{
				   String mensagemErro = " Impossível enviar e-mail.\nMensagem:" + ex.getMessage(); 
				}
				catch (Exception ex) {
				  String mensagemErro = "Erro geral. Mensagem:" + ex.getMessage();
				} 

[/code]

Valeu! 8)

Agora você está precisando usar mail.jar. Uma forma de usar esse mail.jar é modificar o arquivo manifest.mf do jar do seu applet e mencionar o mail.jar no item Classpath.

http://java.sun.com/docs/books/tutorial/jar/manifest/downman.html

Putz, não entendi nada o que terei que fazer…
Eu sei que eu já adicionei o mail.jar em meu Build Path do Eclipse em meu projeto, tanto é que funciona o envio de e-mails.
Agora não entendi o que disse pra mim fazer…

Se eu tirar:

/*catch (MessagingException ex) { String mensagemErro = " Impossível enviar e-mail.\nMensagem:" + ex.getMessage(); }*/
Será que já não rola?

vou tentar…
valeu! 8)

Nem deu certo hauhauha agora ele vai acusar o outro catch do mail, vc poderia me explicar de forma mais simplificada para um iniciante sobre o que devo fazer?

Valeu! 8)