我正在尝试使用JavaPNS 2.2通过代理推送到Apple设备。我的Java应用程序在防火墙后面的jBoss上运行,与Apple Serv通信的唯一方法是通过该代理。

 public ApplePushNotification(File certificate){

    super();
    ProxyManager.setProxy("myproxy", "myport");
    this.certificate = certificate;

}


我收到此异常。

javapns.communication.exceptions.CommunicationException: Communication exception: java.io.IOException: Unable to tunnel through. Proxy returns "HTTP/1.1 407 Proxy Authentication Required ( Forefront TMG requires authorization to fulfill the request. Access to the Web Proxy filter is denied.  )"


因此,我阅读了ProxyManager.java文件以查找授权方式。我找到了这个:

        /**
         * Configure the authorization for the proxy configured through the setProxy method.
         *
         * @param username the user name to use
         * @param password the password to use
         */
        public static void setProxyBasicAuthorization(String username, String password) {
                setProxyAuthorization(encodeProxyAuthorization(username, password));
        }


我试图使用像ProxyManager.setProxy("myproxy", "myport");这样的静态方法,但我无法使用它。
我真的很感谢您的帮助。谢谢

附加链接:

http://code.google.com/p/javapns/source/browse/trunk/src/javapns/communication/ProxyManager.java

http://code.google.com/p/javapns/

最佳答案

最后,我将其与JavaPNS 2.3 Beta一起使用。

ProxyManager.setProxy("myProxy", "myPort");
ProxyManager.setProxyBasicAuthorization("username", "password");


如果要使其与JavaPNS 2.2一起运行,则需要自己实现。但是使用2.3是更容易的方法。只需将javaPNS_2.3_Beta_2.jar作为库包含到您的项目中即可。

https://github.com/azinman/javapns/blob/master/JavaPNS_2.3_Beta_2.jar?raw=true

10-08 03:34