2011-12-05 16 views
6

मैं जावा एपीएनएस - एक ओपन सोर्स प्रोजेक्ट - आईफोन को पुश नोटिफिकेशन भेजने के लिए उपयोग करने की कोशिश कर रहा हूं। मुझे एक त्रुटि मिल रही है, यद्यपि।जावा एपीएनएस (ऐप्पल पुश अधिसूचना सेवा) त्रुटि

मैंने प्रमाण पत्र के रूप में .pem फ़ाइल का उपयोग किया है। क्या यह एक .p12 फ़ाइल होनी चाहिए? मुझे यकीन नहीं है कि अंतर क्या है, लेकिन मैंने कहीं ऑनलाइन पढ़ा है कि इन फ़ाइल स्वरूपों के बीच एक अंतर है। यहाँ

ApnsService service = 
     APNS.newService() 
      .withCert("gpk.pem", "XXXX") 
      .withSandboxDestination() 
      .build(); 


    String payload = APNS.newPayload().alertBody("Can't be simpler than this!").build(); 
    String token = "theTokenIsRemoveHere"; 
    service.push(token, payload); 

और त्रुटि है:

यहाँ कोड है

Exception in thread "main" com.notnoop.exceptions.InvalidSSLConfig: java.io.IOException: toDerInputStream rejects tag type 45 
    at com.notnoop.apns.internal.Utilities.newSSLContext(Utilities.java:102) 
    at com.notnoop.apns.ApnsServiceBuilder.withCert(ApnsServiceBuilder.java:161) 
    at com.notnoop.apns.ApnsServiceBuilder.withCert(ApnsServiceBuilder.java:124) 
    at com.geomobsters.cli.ApnsClient.main(ApnsClient.java:12) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 
Caused by: java.io.IOException: toDerInputStream rejects tag type 45 
    at sun.security.util.DerValue.toDerInputStream(DerValue.java:806) 
    at com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1201) 
    at java.security.KeyStore.load(KeyStore.java:1185) 
    at com.notnoop.apns.internal.Utilities.newSSLContext(Utilities.java:87) 
    ... 8 more 

उत्तर

10

जावा APNS .p12 फ़ाइल के रूप में प्रमाणपत्र उम्मीद कर रही है।

आपको अपने कीचेन में निजीकी और प्रमाणपत्र दोनों जांचना होगा। तो सही क्लिक-> "निर्यात 2 फ़ाइलें" और उन्हें निर्यात आप इसे एक पासवर्ड देना है, इस पासवर्ड को आप XXXX के रूप में यहाँ

.withCert("gpk.pem", "XXXX") 

टाइप करने के लिए

सौभाग्य

है

संपादित करें:

.p12 - PKCS # 12, प्रमाण पत्र एक पासवर्ड .pem के साथ सहेजा एक निजी कुंजी शामिल हैं - है Base64- एन्कोड प्रमाण पत्र, lockedby „-----BEGIN CERTIFICATE-----“ and „-----END CERTIFICATE-----“

संबंधित मुद्दे