1

Apple Push Notification Server (APNS) で動作する Java アプリがあります。lib: JavaPNS.jarを使用して、プッシュ メッセージを iDevices に送信します。ただし、プッシュ通知が機能しない場合があります。次のようなエラーが見つかりました。

[16:35:40] Andrew Balakhanov: 2012-10-27 04:00:00,616 WARN [com.notnoop.apns.internal.ApnsConnectionImpl] メッセージ com.notnoop.apns.EnhancedApnsNotification@af310b99 の送信に失敗しました... 再試行java.net.SocketException: com.sun.net.ssl.internal.ssl.AppOutputStream.write の com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1339) でリモート ホストによって接続が閉じられました(AppOutputStream.java:44) で java.io.OutputStream.write(OutputStream.java:58) で com.notnoop.apns.internal.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:161) で com.notnoop.apns.internal. ApnsServiceImpl.push(ApnsServiceImpl.java:46) com.notnoop.apns.internal.AbstractApnsService.push(AbstractApnsService.java:52) com.notnoop.apns.internal.ApnsServiceImpl.push(ApnsServiceImpl.java:36) com .clinics.core.api.util.APN.sendReminderAlert(APN.java:55) com.clinics.core.api.services.schedule.reminder.impl.ReminderSenderMobile.prepareAndSend(ReminderSenderMobile.java:190) com.clinics.core.api.services.schedule.reminder. impl.ReminderSenderMobile.send(ReminderSenderMobile.java:132) com.clinics.core.api.services.schedule.reminder.AbstractReminderFacade.generateAndSendReports(AbstractReminderFacade.java:53) com.clinics.core.api.services.schedule で。 Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) で sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) で、sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl. java:25) org.springframework.util.MethodInvoker の java.lang.reflect.Method.invoke(Method.java:597) で。org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:264) で invoke(MethodInvoker.java:273) org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86) で.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)

エラーの意味を教えてください。Appleサーバーが私を禁止したということですか、それは私がそれにあまりにも多くのリクエストを送信したということですか?

4

3 に答える 3

9

このエラーの原因として最も可能性が高いのは、運用トークンをサンドボックス サーバーに送信しているか、サンドボックス トークンを運用サーバーに送信していることです。

私のサーバーがサンドボックスプッシュサーバーと通信している間、アプリがトークンを生成するために本番プッシュサーバーを使用するようにするアドホックプロファイルでアプリに署名したことがわかるまで、今日この正確な動作を取得しました。

于 2012-11-12T15:50:57.487 に答える
1

このエラーは、ペイロードが長すぎる場合にも発生する可能性があります。

PayloadBuilderisTooLong()関数を呼び出すことで確認できます。

PayloadBuilder payload = APNS.newPayload();

// build your payload               

if (payload.isTooLong())
{
    // your payload is too long, a push() will result in the above exception
}
于 2013-07-21T13:36:50.440 に答える