调用https时出现Java 7 Class Not Exception

时间:2014-01-21 01:19:54

标签: java https urlconnection

我们有一些在Java 6中运行良好的代码:

    String g = "https://graph.facebook.com/oauth/access_token?client_id=xxxxx&redirect_uri="
            + URLEncoder.encode("http://www.bestcricketgame.com/facebook-login/", "UTF-8")
            + "&client_secret=xxxxxxx" 
            + "&code=" + code;

    URL u = new URL(g);
    URLConnection c = u.openConnection();
    BufferedReader in = new BufferedReader(new InputStreamReader(c.getInputStream()));

然而,在安装java 7并运行相同的代码后,我们得到了这个:

java.lang.NoClassDefFoundError:sun.net.www.protocol.http.HttpURLConnection

java.lang.NoClassDefFoundError: sun.net.www.protocol.http.HttpURLConnection
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.<init>(HttpsURLConnectionImpl.java:86)
    at sun.net.www.protocol.https.Handler.openConnection(Handler.java:62)
    at sun.net.www.protocol.https.Handler.openConnection(Handler.java:57)
    at java.net.URL.openConnection(URL.java:971)
    at tipping.FacebookLogin.processFacebookLogin(FacebookLogin.java:39)
    at tipping.FacebookLoginCallbackServlet.service(FacebookLoginCallbackServlet.java:60)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:91) 

.....

第39行是:URLConnection c = u.openConnection();

显而易见的想法是,也许我们应该使用HttpsURLConnection,但另一方面,我们因为不使用它而得到ClassNotFoundException并不是真的有意义,而且像这样的重大改变肯定会是记录。我搜索过谷歌并且找不到与此事有关的任何内容。

感谢您的帮助!

1 个答案:

答案 0 :(得分:-2)

尝试使用java.net.URLConnection作为导入。