I’m trying to send push notifications to my device using javapns library in liferay. Here’s the code:
private void pushNotification(ActionRequest actionRequest,
ActionResponse actionResponse) {
try {
System.out.println("Push");
Push.alert("Hello World!", "ck.p12", "PASSPHRASE", false, "TOKEN");
} catch (CommunicationException e) {
System.out.println("CommunicationException");
e.printStackTrace();
} catch (KeystoreException e) {
System.out.println("KeystoreException");
e.printStackTrace();
}
}
I’m getting this error when the pushNotification is called:
ERROR [PushNotificationManager:450] Delivery error: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
I’ve googled it but couldn’t find any solution.
Does anyone know how to solve this problem?
The
javax.net.ssl.SSLHandshakeExceptionexception is usually thrown when the server you’re trying to connect to does not have a valid certificate from an authorized CA.Put simply, the server you’re attempting to connect to is most likely using a self-signed certificate and you have to accomodate for that in your Java code. This involves creating a custom
KeyStore, etc. See this Stack Overflow answer for full implementation details.