当前位置: 首页 > 知识库问答 >
问题:

JavaPN抛出SSLHandshakeException java。伊奥。EOFEException:SSL对等端错误关闭

刘才俊
2023-03-14

我正在用Java为苹果开发一个推送通知服务,为此我使用了JavaPNS 2.2。我使用了本网站提供的教程,在Apple中创建了我的证书,并成功地运行了演示(PHP)。(我还转换了.p12、.pem文件中的证书)。

然而,当我尝试在我的测试类中运行java中的简单消息推送时(如JavaPNS教程中指定的),

public class PushTest {

public static void main(String[] args) {
     try {
         List<PushedNotification> notifications = Push.alert("Hello World!", "<filename>.p12", "<password>", true, "<devicetoken>");
         System.out.println("List of Device: "+notifications);

         List<Device> inactiveDevices = Push.feedback("<filename>.p12", "<password>", true);
    } catch (CommunicationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (KeystoreException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

我越来越,

javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(Unknown Source)
    at com.sun.net.ssl.internal.ssl.AppOutputStream.write(Unknown Source)
    at java.io.OutputStream.write(Unknown Source)
    at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:402)
    at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:350)
    at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:320)
    at javapns.Push.sendPayload(Push.java:177)
    at javapns.Push.test(Push.java:132)
    at javapns.test.NotificationTest.pushTest(NotificationTest.java:83)
    at javapns.test.NotificationTest.main(NotificationTest.java:46)

在eclipse中调试JavaPNS代码后,我知道错误是由于,

java.io.EOFException: SSL peer shut down incorrectly

现在我不明白问题出在哪里,因为我的证书(带有.PEM扩展名)可以很好地用于PHP示例。

如果它在PHP中工作,而不是在Java中工作,我怀疑它的证书是否有问题,JavaPNS站点也没有指定我是否必须通过keytool导入生成的证书。

谁能帮我解决我的问题?仅供参考:我的系统配置,操作系统: Win 7Java: jdk1.6.0_05JavaPNS: 2.2

共有1个答案

韦寒
2023-03-14

终于我找到了问题的答案,

这是证书。问题是,有两个证书具有相同的URL(com.xxx.xxx),因此出现了混淆。

我已经删除了设备未使用的一个,并创建了一个新的。p12从设备和宾果游戏中使用的那一个,它成功了。

 类似资料:
  • 当我在独立java代码中运行相同的代码时,我会得到响应,而当我在web应用中运行时,我会得到这个错误。 Java 1.8和tomcat 6.0.53的原因是:Java。木卫一。EOFEException:SSL对等端错误关闭 代码:

  • 我有一个问题,集成liquibase maven执行与一个mysql 5.7数据库由Azure作为一个服务.错误日志是: 无法执行目标组织。liquibase:liquibase maven插件:3.0.5:项目上的状态(默认cli)-:设置或运行liquibase:com时出错。mysql。jdbc。例外情况。jdbc4。通信异常:通信链路故障发送到服务器的最后一个数据包是575毫秒前的。握手期

  • 我有以下代码: 当我运行代码时,我得到以下异常消息:期间与远程主机的连接失败。 我不知道为什么我会收到这条信息。

  • 问题内容: 我需要通过HTTPS协议发出请求。我写了以下代码: 我使用 java.io.EOFException 得到了这个异常stacktrace : 我从 https://google.com 获得了成功的响应,但是以上URL(https://ancine.band.com.br/xml/pgrt1_dta_20150303.xml)中的此错误。 使用PHP,.NET和NodeJS,URL可以

  • 如果我在以下URL上运行上述代码:https://eztv.it/shows/887/the-blacklist/,它将按预期工作。两个URL文件大小之间的差异似乎是一个促成因素。在测试同一个服务器的不同URL时,上面的代码似乎只适用于小于30KB的文件。以上任何内容都将生成上述异常。

  • 我在groovy类中有一个Restendpoint,其方法签名如下...... 是一个。在我的post请求中,我传递json。 如果我这样做,我可以看到参数(注意:我知道这是在java样式循环中打印字符串。这不是我想要的)...... 我想要的是一种转换使用groovy读取一个漂亮的Json对象,然后从Json对象读取属性? 谢谢