第一次提问希望大家可以帮我解决这个问题

leilei0932_java 2011-11-29 04:33:10
我是在做平安保险的接口,在tomcat下已经测试成功,但是客户部署到weblogic下就出现了问题:

HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
在这句代码上抛出了异常weblogic.net.http.SOAPHttpsURLConnection cannot be cast to javax.net.ssl.HttpsURLConnection

希望有遇见过此情况的前辈们给我些帮助
...全文
1318 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxiang243 2012-12-21
  • 打赏
  • 举报
回复
引用 32 楼 leilei0932_java 的回复:
myeclipse中window -> preferences -> 输入weblogic -> jdk 在右边arguments中加入-DUseSunHttpHandler=true 这是通过myeclipse启动的方式 如果你想直接通过startWebLogic.cmd启动的话,将set MEM_ARGS = -DUseSunHttpHandler=true……
我在myeclipse中添加参数是可以的,但是直接在startWeblogic.cmd中添加怎么不行啊!! weblogic版本是10.3.3! 求楼主指教 谢谢!!
James2199 2012-11-05
  • 打赏
  • 举报
回复
楼主哥哥你好!我也碰到的你一样的问题,能不能将你的请求HTTPS的完整代码发一份给我,让我参考一下啊!谢谢啦邮箱:365028496@qq.com坐等哦!
XingAmanda 2011-12-09
  • 打赏
  • 举报
回复
今天我也遇到了同样的问题,请问楼主最后是怎么解决的,非常感谢,等待您的的回复
leilei0932_java 2011-12-09
  • 打赏
  • 举报
回复
myeclipse中window -> preferences -> 输入weblogic -> jdk
在右边arguments中加入-DUseSunHttpHandler=true
这是通过myeclipse启动的方式

如果你想直接通过startWebLogic.cmd启动的话,将set MEM_ARGS = -DUseSunHttpHandler=true加入此文件中位置在@REM Start Derby下面一行就可以了
leilei0932_java 2011-12-01
  • 打赏
  • 举报
回复
继续等待有用信息...
leilei0932_java 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 ruogannian 的回复:]

来晚了,楼主财大气粗,给点吧
[/Quote]

已经结贴了...也很谢谢你,兄弟下次在遇到问题了一定有你的分,你放心吧.
若干年 2011-12-01
  • 打赏
  • 举报
回复
来晚了,楼主财大气粗,给点吧
若干年 2011-12-01
  • 打赏
  • 举报
回复
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();

在weblogic的start脚本中加入
-DUseSunHttpHandler=true
Cactus_hxk 2011-12-01
  • 打赏
  • 举报
回复
帮顶!我之前在tomcat上写的项目现在也换成weblogic,好多问题,在tomcat上好好的,郁闷
leilei0932_java 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 cash1990 的回复:]

-DUseSunHttpHandler=true
加到合适地方 你懂
[/Quote]

兄弟太谢谢你了啊,我试了一下真的可以了...
cash1990 2011-12-01
  • 打赏
  • 举报
回复
-DUseSunHttpHandler=true
加到合适地方 你懂
cash1990 2011-12-01
  • 打赏
  • 举报
回复
哥们,你这问题不解决,项目不能继续呀,关注...
leilei0932_java 2011-12-01
  • 打赏
  • 举报
回复
好了,如果能帮我解决这个问题,我给500分...
leilei0932_java 2011-11-30
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 leilei0932_java 的回复:]

引入weblogic.jar后将代码改为
SOAPHttpsURLConnection connection = (SOAPHttpsURLConnection) url.openConnection();

现在抛出这个异常:javax.net.ssl.SSLKeyException: FATAL Alert:BAD_CERTIFICATE - A corrupt or unuseabl……
[/Quote]

对我现在就是在找这方面东西,之前的代码是这样的:
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这个类与之对应的方法就可以了,但是死活找不到...
qybao 2011-11-30
  • 打赏
  • 举报
回复
协议不一样,SSL认证也不同
根据新的协议重写生成SSL认证
LZ在网上查查看 OpenSSL/SOAP 的一些相关资料看看吧
leilei0932_java 2011-11-30
  • 打赏
  • 举报
回复
引入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啊,你妹的啊...
leilei0932_java 2011-11-30
  • 打赏
  • 举报
回复
HttpsURLConnection.setDefaultHostnameVerifier(hv);
connection = (HttpsURLConnection) url.openConnection();

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

整整两天了,太特么折磨人了哎...
zskang_love 2011-11-30
  • 打赏
  • 举报
回复
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();
}


这是我的这个项目里面用到的。不知道可能解决你的问题。你可以试试。
leilei0932_java 2011-11-30
  • 打赏
  • 举报
回复
大侠们只要帮我把这个问题解决了我再加100分,好不好O不OK丢木丢啊...
lipeng726 2011-11-30
  • 打赏
  • 举报
回复
非常好
加载更多回复(11)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧