我是在做平安保险的接口,在tomcat下已经测试成功,但是客户部署到weblogic下就出现了问题:HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
在这句代码上抛出了异常weblogic.net.http.SOAPHttpsURLConnection cannot be cast to javax.net.ssl.HttpsURLConnection希望有遇见过此情况的前辈们给我些帮助

解决方案 »

  1.   

    返回的是SOAPHttpsURLConnection类,你接收的是HttpsURLConnection类,转换不了。原因是包导入错误,SOAPHttpsURLConnection类在weblogic.jar包中。导入weblogic.jar包;
    将wsclient.jar去掉,如果必须使用不可,则在导入weblogic.jar后再导入该包.
      

  2.   

    url.openConnection()在tomcat下返回的是java.net.URLConnection,到了weblogic下返回的则是weblogic.net.http.SOAPHttpsURLConnection,我也知道不能转换,但是现在根本无从下手...
      

  3.   

    正在下jar包,之前因为没说要在weblogic下运行,根本就没考虑这些
      

  4.   

    返回的是SOAPHttpsURLConnection类,你接收的是HttpsURLConnection类,转换不了。原因是包导入错误,SOAPHttpsURLConnection类在weblogic.jar包中。导入weblogic.jar包;
    将wsclient.jar去掉,如果必须使用不可,则在导入weblogic.jar后再导入该包.
      

  5.   


    好像不能映射到javax.net.ssl.HttpsURLConnection 这个类.看是否收入这个类或者导入这个包没有?
      

  6.   

    引入weblogic.jar后将代码改为
    SOAPHttpsURLConnection connection = (SOAPHttpsURLConnection) url.openConnection();现在抛出这个异常:javax.net.ssl.SSLKeyException: FATAL Alert:BAD_CERTIFICATE - A corrupt or unuseable certificate was received.what can i do啊,你妹的啊...
      

  7.   

    协议不一样,SSL认证也不同
    根据新的协议重写生成SSL认证
    LZ在网上查查看 OpenSSL/SOAP 的一些相关资料看看吧
      

  8.   


    对我现在就是在找这方面东西,之前的代码是这样的:
    HostnameVerifier hv = new HostnameVerifier() {
                public boolean verify(String urlHostName, SSLSession session) {            
                         System.out.println("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost());             
                         return true;               
                }    
    };

    HttpsURLConnection.setDefaultHostnameVerifier(hv);我觉得只要找到SOAPHttpsURLConnection这个类与之对应的方法就可以了,但是死活找不到...
      

  9.   

    大侠们只要帮我把这个问题解决了我再加100分,好不好O不OK丢木丢啊...
      

  10.   

    if(basePath.startsWith("https://")) {
    // 创建SSLContext对象,并使用我们指定的信任管理器初始化
    TrustManager[] tm = { new MyX509TrustManager() };
    SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE"); sslContext.init(null, tm, new java.security.SecureRandom()); // 从上述SSLContext对象中得到SSLSocketFactory对象
    SSLSocketFactory ssf = sslContext.getSocketFactory();

            

    HostnameVerifier hv = new HostnameVerifier() {       public boolean verify(String urlHostName, SSLSession session)       {              System.out.println("Warning: URL Host: "+urlHostName+" vs. "+session.getPeerHost());              return true;       } }; HttpsURLConnection.setDefaultHostnameVerifier(hv);
    connection = (HttpsURLConnection) url
    .openConnection();
    connection.setSSLSocketFactory(ssf); 
    connection.setRequestProperty("Cookie", "JSESSIONID=" + sessionid);
     
    connection.connect();
    } else {
    con = (HttpURLConnection) url.openConnection();
    con.setRequestProperty("Cookie", "JSESSIONID=" + sessionid);
    con.connect();
    }这是我的这个项目里面用到的。不知道可能解决你的问题。你可以试试。
      

  11.   

    HttpsURLConnection.setDefaultHostnameVerifier(hv);
    connection = (HttpsURLConnection) url.openConnection();现在主要的问题就在于这两句代码,在weblogic下url.openConnection()返回的对象不可以转换成
    javax.net.ssl.HttpsURLConnection所以我要将HttpsURLConnection替换为SOAPHttpsURLConnection
    但是这个类中没有setDefaultHostnameVerifier(hv);这个方法,这样一来ssl认证就通不过了...整整两天了,太特么折磨人了哎...
      

  12.   

    -DUseSunHttpHandler=true
    加到合适地方 你懂
      

  13.   

    HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();在weblogic的start脚本中加入
    -DUseSunHttpHandler=true 
      

  14.   

    myeclipse中window -> preferences -> 输入weblogic -> jdk
    在右边arguments中加入-DUseSunHttpHandler=true
    这是通过myeclipse启动的方式如果你想直接通过startWebLogic.cmd启动的话,将set MEM_ARGS = -DUseSunHttpHandler=true加入此文件中位置在@REM Start Derby下面一行就可以了
      

  15.   

    楼主哥哥你好!我也碰到的你一样的问题,能不能将你的请求HTTPS的完整代码发一份给我,让我参考一下啊!谢谢啦邮箱:[email protected]坐等哦!
      

  16.   


    我在myeclipse中添加参数是可以的,但是直接在startWeblogic.cmd中添加怎么不行啊!!
    weblogic版本是10.3.3!
    求楼主指教
    谢谢!!