1

I am trying to connect to a REST API in an application deployed on weblogic 10.3.6. The sample code works fine when run independently (outside weblogic server). But when I deploy the same code it starts giving me this error

Failed to communicate with proxy: proxy.xxx.xxx/xxxx. Will try connection api.forecast.io/443 now. weblogic.net.http.HttpUnauthorizedException: Proxy or Server Authentication Required at weblogic.net.http.HttpURLConnection.getAuthInfo(HttpURLConnection.java:297) at weblogic.net.http.HttpsClient.makeConnectionUsingProxy(HttpsClient.java:440) at weblogic.net.http.HttpsClient.openServer(HttpsClient.java:351) at weblogic.net.http.HttpsClient.New(HttpsClient.java:527) at weblogic.net.http.HttpsURLConnection.connect(HttpsURLConnection.java:239)

Code that we are running is as below

        try {
        HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
            public boolean verify(String hostname, SSLSession session) {
                return true;
            }
        });
        SSLContext context = SSLContext.getInstance("TLS");
        context.init(null, new X509TrustManager[] { new X509TrustManager() {
                    public void checkClientTrusted(X509Certificate[] chain,
                                                   String authType) throws CertificateException {
                    }

                    public void checkServerTrusted(X509Certificate[] chain,
                                                   String authType) throws CertificateException {
                    }

                    public X509Certificate[] getAcceptedIssuers() {
                        return new X509Certificate[0];
                    }
                } }, new SecureRandom());
        HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());
    } catch (Exception e) { // should never happen
        e.printStackTrace();
    }

    try {
        Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy.xxxx.xxxx", xxxx));
        URL url = new URL("https://api.forecast.io/forecast/xxxxxxxxx/12.9667,77.5667");
        HttpURLConnection conn = (HttpURLConnection)url.openConnection(proxy);
        conn.setRequestMethod("GET");
        conn.setRequestProperty("Accept", "application/json");
        if (conn.getResponseCode() != 200) {
            throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
        }

        BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));

        String output;
        System.out.println("Output from Server .... \n");
        while ((output = br.readLine()) != null) {
            System.out.println(output);
        }
        conn.disconnect();
    } catch (MalformedURLException e) {

        e.printStackTrace();

    } catch (IOException e) {

        e.printStackTrace();

    }
return "";

Our proxy is a company proxy and doesn't have any username/password. We are stuck on this issue for sometime now. Any suggestions/pointers will be really appreciated.

user1996183
  • 121
  • 1
  • 2
  • 7
  • Your company is probably running some sort of auto config script then? Try looking into setting that PAC script in your code like this question: http://stackoverflow.com/questions/10936268/how-to-use-automatic-proxy-configuration-script-in-java – Display Name is missing Jun 03 '14 at 15:24

0 Answers0