读书人

JAVA发送邮件时类明明存在却报cla

发布时间: 2013-09-06 10:17:17 作者: rapoo

JAVA发送邮件时,类明明存在,却报classnotfound异常
用JAVA发送邮件时,由于要用到TLS,就要注册ssl.SocketFactory.provider,但是居然发生classnotfound异常。代码如下:
java.security.Security.setProperty("ssl.SocketFactory.provider",
"com.hollycrm.service.ticket.util.DNESSLSocketFactory");


异常信息:

org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Could not convert socket to TLS
javax.mail.MessagingException: Could not convert socket to TLS;
nested exception is:
java.net.SocketException: java.lang.ClassNotFoundException: com.hollycrm.service.ticket.util.DNESSLSocketFactory

奇怪的是,这个类明明存在,路径也没错:
package com.hollycrm.service.ticket.util;

import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import javax.net.SocketFactory;
import javax.net.ssl.*;
public class DNESSLSocketFactory extends SSLSocketFactory {

class文件也有DNESSLSocketFactory.class

不知道大家有没有遇到过类似的情况,请大家帮忙分析一下,小弟万分感谢! Java 邮件 找不到类
[解决办法]

import java.net.URLClassLoader;
import java.util.Arrays;

public class ClasspathDumper
{
public static void main(String... args)
{
dumpClasspath(ClasspathDumper.class.getClassLoader());
}

public static void dumpClasspath(ClassLoader loader)
{
System.out.println("Classloader " + loader + ":");

if (loader instanceof URLClassLoader)
{
URLClassLoader ucl = (URLClassLoader)loader;
System.out.println("\t" + Arrays.toString(ucl.getURLs()));


}
else
System.out.println("\t(cannot display components as not a URLClassLoader)");

if (loader.getParent() != null)
dumpClasspath(loader.getParent());
}
}


[解决办法]
我记得我写过用java发送邮件的东西,好像有有个包和java自带的包冲突了,要删掉一个,具体是哪个我也不记得了,你网上查下。

读书人网 >J2EE开发

热点推荐