Java 7 runtime support on App Engine standard was deprecated on December 13, 2017 and will be shut down entirely on January 16, 2019. It is replaced by the Java 8 Runtime Environment.
Samples for the Java 8 runtime can be found here.
Note: JavaPNS is an open source library for Apple Push Notifications. With socket support for App Engine, many applications can now use JavaPNS on App Engine directly.
App Engine does not officially support JavaPNS, although it may work with these caveats:
-
JavaPNS uses Security.getProperty, which was not permitted in versions of App Engine earlier than 1.7.3. However, if you need this to work in 1.7.2, you may change the
javapnssource to not useSecurity.getProperty, and simply set ALGORITHM to ``sunx509. (Future versions are expected to fix this by replacing the use ofSecurity.getProperty` with `KeyManagerFactory.getDefaultAlgorithm()`, which will work correctly with older versions of App Engine. -
App Engine does not support signed JAR files; accordingly the "Bouncy Castle" jar provided with the
javapnsdistribution fails to load. To fix this, remove theMETA-INF/MANIFEST.MFfile frombcprov-jdk15-146.jarusing the following command line:zip -d bcprov-jdk15-146.jar META-INF/MANIFEST.MF
App Engine does not officially support JavaMail, although it may work with these caveats:
JavaMail
1.4.5 is compatible with App Engine but requires a work-around to
resolve the issue of
class loader
ordering. Currently, there are JavaMail classes in the appengine-api.jar, which is scanned
before all other JAR files. This causes the wrong javax.mail classes to be loaded. The work-around is to unzip the JavaMail 1.4.5
mailapi.jar file (excluding the META-INF/MANIFEST.MF file) into the WEB-INF/classes directory. This causes the correct
classes to be loaded before those in appengine-api.jar.