I faced the same issue a few month back with a Java backend for one of our apps and after searching for libraries (Which in fact wasn't even a possible option on the Google App Engine) I found Urban Airship.
Urban Airship is a middle man between your backend and the various push notification services (it does support APNS, but as well android / blackberry / Win). You just need to configure your Push service on their platform, implement a REST call to one of their endpoint and done!
They have free plan starting with 1 Million (1.000.000) notifications / month.
Really good service so far and it's giving us the ability to quickly scale to other push services without having to implement specific code on our server side.