u011183172 2015-05-13 12:01 采纳率: 100%
浏览 1784
已采纳

J2EE做的网站,要访问其他网站

就出现以下异常:
javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name
at sun.security.ssl.ClientHandshaker.handshakeAlert(ClientHandshaker.java:1292)
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1952)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1300)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at com.mymap.model.CaptureJavascript.getPosition(CaptureJavascript.java:60)

尝试照网上说的添加: **System.setProperty("jsse.enableSNIExtension", "false");**
但是无效。

以下是我的代码。该方法在Capture类中,servlet类中调用Capture类的方法,方法代码如下:
private double[] getPosition(double lat, double lon) throws Exception
{

    System.setProperty("jsse.enableSNIExtension", "false");
    String strURL = "https://eosweb.larc.nasa.gov/cgi-bin/sse/grid.cgi?&num=230000&lat=" + lat + 
            "&submit=Submit&veg=17&p=swv_dwn&step=2&lon=" + lon;
    //"https://eosweb.larc.nasa.gov/cgi-bin/sse/grid.cgi?&num=199997&lat=" + lat + "&submit=Submit&veg=17&p=swv_dwn&step=2&lon=" + lon;

    URL url = new URL(strURL);
    HttpURLConnection httpConn =  (HttpURLConnection) url.openConnection();

    InputStreamReader input = new InputStreamReader(httpConn.getInputStream(), "utf-8");
    BufferedReader bufReader = new BufferedReader(input);
    StringBuilder contentBuf = new StringBuilder();
    String line = "";
    while((line = bufReader.readLine()) != null) {
        contentBuf.append(line);
    }

    String buf = contentBuf.toString();
    int beginIx = buf.indexOf("year Average");
    int endIx = buf.indexOf("Minimum And Maximum Difference");
    String resultstr = buf.substring(beginIx, endIx);

    return getDoubles(resultstr);
}
  • 写回答

3条回答 默认 最新

  • sunfeilong1993 2015-05-13 13:15
    关注

    http://demo.netfoucs.com/will_awoke/article/details/38587467
    看楼主看一下把,不知道能解决你的问题不能

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况