【问题标题】:notnoop java-apns throw javax.net.ssl.SSLHandshakeException:Received fatal alert: handshake_failurenotnoop java-apns throw javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure
【发布时间】:2013-10-28 07:19:42
【问题描述】:

详情

我使用notnoop java-apns 推送 mdm 消息,我尝试在主函数推送消息是好的!但添加到 spring mvm 在 jetty/tomcat web 上下文中运行会抛出 javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure!帮帮我。

使用spring mvc方法

ModelAttribute
RequestMapping("/deviceinfo")
public String pushCommand(HttpServletRequest request)
{
  String id = request.getParameter("id");
  Device device = deviceManager.get(new Long(id));
  log.debug(device);
  log.debug(device.getToken());
  ApnsService service = APNS.newService().withCert( ClassLoader
  .getSystemResourceAsStream("mdm_push.p12"),"123456")
  .withProductionDestination().build();
  String mdmPayload = APNS.newPayload().mdm(device.getToken().getPushMagic()).build();
  service.push(device.getToken().getToken(), mdmPayload);
  log.warn("mdmDeviceInfoCommand");
  return "device form";
}

错误信息:

INFO [Thread-19] ApnsConnectionImpl.run(170) | Exception while waiting for error code
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
    at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1959)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)
    at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:882)
    at sun.security.ssl.AppInputStream.read(AppInputStream.java:102)
    at java.io.InputStream.read(InputStream.java:101)
    at >com.notnoop.apns.internal.ApnsConnectionImpl$1MonitoringThread.run(ApnsConnectionImpl.java:114)
DEBUG [qtp297885139-65] ApnsConnectionImpl.socket(218) | Made a new connection to APNS
INFO [Thread-20] ApnsConnectionImpl.run(170) | Exception while waiting for error code
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
    at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1959)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)
    at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:882)
    at sun.security.ssl.AppInputStream.read(AppInputStream.java:102)
    at java.io.InputStream.read(InputStream.java:101)
    at >com.notnoop.apns.internal.ApnsConnectionImpl$1MonitoringThread.run(ApnsConnectionImpl.java:114)
INFO [qtp297885139-65] ApnsConnectionImpl.sendMessage(264) | Failed to send message >Message(Id=1; Token=07BE34F5A71A; Payload={"mdm":"E101CB39-697A-4883-B303-67713DEE836E"})... >trying again after delay
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
    at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1959)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)
    at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:882)
    at sun.security.ssl.AppInputStream.read(AppInputStream.java:102)
    at java.io.InputStream.read(InputStream.java:101)
    at >com.notnoop.apns.internal.ApnsConnectionImpl$1MonitoringThread.run(ApnsConnectionImpl.java:114)

【问题讨论】:

  • 尝试使用 -Djavax.net.debug=ssl 运行 Java

标签: java spring security ssl jetty


【解决方案1】:

@artbristol 的建议会告诉你根本原因是什么。

-Djavax.net.debug=ssl

一些例子:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-04
    • 2016-07-22
    • 2017-01-20
    • 2016-11-07
    • 2016-10-07
    • 2016-03-21
    相关资源
    最近更新 更多