본문 바로가기

IT노트(구)/Java

에러 해결 방법 - weblogic.net.http.SOAPHttpsURLConnection cannot be cast to javax.net.ssl.HttpsURLConnection

weblogic에서 HttpsURLConnection을 사용할 때

다음과 같은 에러가 나는 경우가 있다.


java.lang.ClassCastException: weblogic.net.http.SOAPHttpsURLConnection cannot be cast to javax.net.ssl.HttpsURLConnection


openConnection()을 할 때

weblogic이 SOAPHttpsURLConnection을 리턴해버리기 때문이다.


해결 방법은 생각보다 간단하다.

URL 객체를 생성할 때 다음과 같은 형태로 sun.net.www.protocol.https.Handler 핸들러를 삽입해주면

webloginc이 openConnection()을 할 때 HttpsURLConnection을 리턴하도록 강제할 수 있다!(URL 객체를 다음과 같이 선언할 수 있다는 사실을 전혀 몰랐다. 정말 신비로운 것 같다!)


URL url = new URL("https", "devap.nexicure.net", 9443, "https://devap.nexicure.net:9443/validSSO.do", new sun.net.www.protocol.https.Handler());
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();


weblogic 서버의 프로퍼티를 수정하는 방법이 가장 간단하지만

실무에서 서버를 수정하기가 곤란한 경우 위의 방법을 추천한다.