Erro java mail?

14 respostas
F

pessoal to com esse erro o que pode estar acontecendo?

java.lang.NoSuchMethodError: com.sun.mail.util.SocketFetcher.getSocket(Ljava/lang/String;ILjava/util/Properties;Ljava/lang/String;Z)Ljava/net/Socket;
	at com.sun.mail.pop3.Protocol.<init>(Protocol.java:81)
	at com.sun.mail.pop3.POP3Store.getPort(POP3Store.java:201)
	at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:144)
	at javax.mail.Service.connect(Service.java:233)
	at _jsp._pg_0ci._index__jsp._jspService(pg_ci/mail_lercaixa.jsp:43)
	at com.caucho.jsp.JavaPage.service(JavaPage.java:60)
	at com.caucho.jsp.Page.pageservice(Page.java:570)
	at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:179)
	at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:173)
	at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
	at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:274)
	at com.caucho.server.port.TcpConnection.run(TcpConnection.java:514)
	at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520)
	at com.caucho.util.ThreadPool.run(ThreadPool.java:442)
	at java.lang.Thread.run(Thread.java:534)

14 Respostas

A

Seguinte, vc importou todas a bibliotecas?

abrçs

F

sim,

smtp.jar, pop3.jar, activation.jar, imap.jar, mail.jar, mailapi.jar.

A

Por que o erro que ele esta emitindo e por falta de metodo que tem alguma dependencia em algum jar que vc não colocou na aplicação.
Bom eu sugiro vc trabalho com o commons mail da Apache muito facil eh so vc baixar as dependencias e pronto

http://commons.apache.org/email/

vlws

F

nao posso refazer este projeto… pois ja esta rodando assim… seria inviavel refaze-lo.

obrigado

blackout

Adiciona também commons-email-1.1.jar

Veja se resolve.

F

não adiantou. O erro permanece…

o interessante é que se eu acesso o webmail externamente funciona tranquilo… mas dentro da rede da empresa não.

A

adiciona a commons-mail e a commons-logging, derrepente a dependencia do metodo sejam essas

vlws

F

não adiantou adicionar os jar

blackout

Vamos pelo começo então, o que você está tentando fazer. Coloca o código aí

F

Estou tentando ler uma caixa de e-mail mas ta me retornando o erro “acima”.

segue um trecho do meu codigo.

String protocol = "pop3";  // imap ou pop3
    String host = "meu host";
	String mail = "meu e-mail";
    String user = "meu usuario";
    String password = "minha senha";
	String msg_flag = "";
 
    String mbox = "INBOX";
    int port = -1;
	String sql;
	String aux="";
	Vector dados = null;
    mail_functions mf = new mail_functions(); 
    // Get a Properties object
    Properties props = System.getProperties();
    // Get a Session object

    Session session2 = Session.getDefaultInstance(props, null); // NULL->objeto authenticator

    session2.setDebug(false);
    // Get a Store object
    Store store = null; //cria-se um objeto store para se conectar ao depósito de e-mails do servidor
	if(protocol != null)		
	    store = session2.getStore(protocol);
	else
	    store = session2.getStore();
	
	// Connect
	if(host!=null || user!=null || password!=null)
	  [color=red]  store.connect(host, port, user, password);//objeto connect faz a conexão ao depósito de e-mail[/color]
	else
	    store.connect();
    //objeto folder abre a caixa de mensagens  
	Folder folder = store.getDefaultFolder();
    if(folder == null){
	    out.println("Erro de E-mail: Não existe pasta padrão");
	}
	folder = folder.getFolder(mbox); //recebe o nome da pasta como parametro
	if (folder == null){
	    out.println("Erro de E-mail: Pasta inválida");
	}

o erro ocorre onde esta me vermelho

O

Isto está com cara de problema de Classloader.

Adivinhação:

  • Você desenvolveu no Tomcat e está fazendo deploy no Resin.

Conclusão:

  • Ou você desenvolveu usando uma versão mais antiga do javamail ou a versão é Resin “um pouco velha”.

Fato:

  • O Resin tem uma lib do javamail que é carregada junto com o servidor.

Solução:

  • Modificar o seu sistema para adaptar-se a lib do javamail compatível com a do Resin ou verificar como fazer no Resin para usar a sua lib ao invés do servidor.
F

Cara, valeu a tentativa mas as versao das libs e resin sao as mais atuais…

o desenvolimento foi efetuado no resin atual mesmo e esta funcional…

porem EXTERNAMENTE dentro da empressa onde esta instalado o softaware acontece esse erro.

T

O Oyama matou sua charada.
Você precisa pegar a tal versão que está rodando na empresa, não a mais atual, e conferir as versões do Javamail e outras coisas.
Provavelmente deve ser bem mais velha que a versão que você está usando para desenvolver.

F

ok, pessoal vou fazer esses testes e depois posto a solução que achei.

obrigado pela ajuda

Criado 28 de fevereiro de 2008
Ultima resposta 28 de fev. de 2008
Respostas 14
Participantes 5