首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >播放2.2java-apns SSLHandshakeException

播放2.2java-apns SSLHandshakeException
EN

Stack Overflow用户
提问于 2014-08-20 01:12:29
回答 1查看 430关注 0票数 1

我的环境是ubuntu12.04+ Play 2.2.2 + java 7+java-APN0.2.3

在我从苹果下载aps_development并安装到我的keyChain之后,然后将证书和私钥导出到Dev_Certificates.p12。我把它放在conf/certs/Dev_Certificates.p12下面。这就是我遇到的错误:

代码语言:javascript
复制
pool-7-thread-1, WRITE: TLSv1 Handshake, length = 48
pool-7-thread-1, READ: TLSv1 Alert, length = 2
pool-7-thread-1, RECV TLSv1 ALERT:  fatal, handshake_failure
%% Invalidated:  [Session-3, TLS_RSA_WITH_AES_128_CBC_SHA]
pool-7-thread-1, called closeSocket()
pool-7-thread-1, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
pool-7-thread-1, called close()
pool-7-thread-1, called closeInternal(true)
Thread-13, handling exception: java.net.SocketException: Socket is closed
[error] application - ConnectionClosed MessageID: -1 Error: UNKNOWN
[error] c.n.a.i.ApnsConnectionImpl - Couldn't send message after 3 retries.Message(Id=1; Token=62303732366363653231353337356337313133303637373437643839333738323631626662356139663037633234386366613034346635643737353031376635; Payload={"aps":{"alert":{"loc-args":["angelokh"],"action-loc-key":"REPLY","loc-key":"NEW_MESSAGE_PUSH_FORMAT"},"badge":0},"extra":{"traversableAgain":true,"empty":false}})
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) ~[na:1.7.0_55]
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:154) ~[na:1.7.0_55]
    at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1959) ~[na:1.7.0_55]
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077) ~[na:1.7.0_55]
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) ~[na:1.7.0_55]
    at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:702) ~[na:1.7.0_55]
[error] application - MessageSendFailed Msg: Message(Id=1; Token=62303732366363653231353337356337313133303637373437643839333738323631626662356139663037633234386366613034346635643737353031376635; Payload={"aps":{"alert":{"loc-args":["angelokh"],"action-loc-key":"REPLY","loc-key":"NEW_MESSAGE_PUSH_FORMAT"},"badge":0},"extra":{"traversableAgain":true,"empty":false}}) Exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

EDIT1:

p12文件放在conf/certs/下面。该服务作为def函数创建,并由akka演员调用。

代码语言:javascript
复制
def apnsService = { 
    val certPath = "certs/DEV-APNS-CERT.p12"
    val baseBuilder =
          APNS.newService()
            .asBatched()
            .withCert(getClass.getResourceAsStream(certPath), "password")
     baseBuilder.withSandboxDestination()
}.build
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-22 04:34:13

问题是我用的是Akka和Scala。我通过更改为getClass.getClassLoader来修复它。

代码语言:javascript
复制
APNS.newService()
        .asBatched()
        .withCert(getClass.getClassLoader.getResourceAsStream(certPath), "password")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25395318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档