java 非必须参数_java.security.InvalidAlgorithmParameterException:trustAnchors参数必须为非空...

我已经在Keystore中添加了证书,我正在尝试使用Java代码连接到电子邮件交换服务器 . 当我连接它时抛出一个异常 .

当我在eclipse中执行相同的Java代码时,同样的事情工作正常,但是当我执行相同的服务失败时失败 .

这是我的代码:

public static void getEmailConnection(String folder){

try{

Store store = null;

Properties properties = System.getProperties();

Folder emailFolder = null;

final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

String host = "HOST NAME";

String username = "username";// change accordingly

String password = "password";// change accordingly

String mailStoreType = "pop3";

String port = "1234";

//Set manual Properties

properties.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);

properties.setProperty("mail.pop3.socketFactory.fallback", "false");

properties.setProperty("mail.pop3.socketFactory.port", port);

properties.setProperty("mail.store.protocol", mailStoreType);

properties.setProperty("mail.pop3.host", host);

properties.setProperty("mail.pop3.port", port);

Session emailSession = Session.getDefaultInstance(properties);

//create the POP3 store object and connect with the pop server

store = emailSession.getStore("pop3");

store.connect(host,1234,username, password);

emailFolder = store.getFolder(folder);

emailFolder.open(Folder.READ_ONLY);

}catch(Exception e){

throw new BsfConstraintViolationException("Unable to connect to Exchange Server",e);

}

}

请找到下面的堆栈跟踪 .

引起:java.lang.RuntimeException:意外错误:java.security.InvalidAlgorithmParameterException:在sun.security.validator的sun.security.validator.PKIXValidator . (PKIXValidator.java:90)上,trustAnchors参数必须为非空 . 验证者.getInstance(Validator.java:179)at sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:314)at sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.java:173)at sun.security.ssl .X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:186)位于sun.security的sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1320) . ssl.ClientHandshaker.processMessage(ClientHandshaker.java:154)位于sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)sun.security.ssl.Handshaker.process_record(Handshaker.java:804)sun.security .ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1032)a sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1328)at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:882)at sun.security.ssl.AppInputStream.read(AppInputStream.java:102 )......还有24个

任何人都可以帮我解决这个问题 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值