1

開発者プロファイルで正常に動作するアプリを開発しました。しかし、私は現在本番環境にあり、PUSH通知は機能していません。

notnoopのjava-apnsを使用しています

証明書は正しいものです(ローカルラップトップで試したため)。

しかし、それは私のサーバーでは機能していません。次のエラーが発生します。

com.notnoop.exceptions.NetworkIOException: java.net.SocketException: Socket closed

私が使用しているコードは次のとおりです。

    try{
         //Abrimos el servicio con el certificado
         ApnsService service =APNS.newService()
        .withCert("cert.p12", "password")
                .withProductionDestination()
        .build();
    String payload="";

    payload = APNS.newPayload().sound("default").badge(1).localizedKey("ShoutPushStringWithData").localizedArguments(pUserName, pMessage).build();
    String token = pPushURI;            
    service.push(token, payload);
    } catch(RuntimeIOException | InvalidSSLConfig | NetworkIOException e){
        WebServiceLogger.getInstance().log(Level.INFO, "[ERROR PUSH]: "+ e);
    }

私は何が間違っているのですか?どうすれば修正できますか?

ありがとう、イバイ

4

2 に答える 2

3

私は同じ問題とメッセージに遭遇し、最終的に問題は私が証明書を使用したことであると考えましたか?サンドボックス用に生成され、コードでAPNSサービスが.withProductionDestination()。build()として作成されました。コードを.withSandboxDestination()。build()に変更すると、機能するようになりました。

于 2014-06-26T12:36:58.093 に答える
1

ついに解決しました。java-apnsでこの作業を行うことは不可能でした。理由はわかりません。

javapnsを使用することにしました。簡単ではありませんが、修正されました。

重要な点は、Certificate.p12は、Apple Production iOS Push Servicesからのみエクスポートされたものでなければならず、他の投稿で読んだように、DistributionとProduction iOSPushServicesの両方からエクスポートされたものであってはならないということです。

これで頑張ってください!

于 2012-09-26T15:26:59.123 に答える