2014-09-02 2 views
1

안녕하세요?https로 축 1 사용

글쎄, 문제는 Axis1을 사용하여 WSDL이있는 URL이 평범한 이전 HTTP 연결을 사용할 때 제대로 작동하는 wsdl 기반 웹 서비스를 사용하지만 SSL 보안 연결을 사용할 때 ConnectionException을 발생시킵니다. Axis1은 WSDL 문서 내용을 다운로드하려고 시도합니다. XMLUtils.class에

심지어 읽기 코멘트 축 개발자는 라인 (810)

에 읽기로는이 문제를 해결하기 위해 어떤 방법이 있나요 HTTPS로 작동하는지조차 확실하지? Whe가 컴퓨터에 ... jre7/lib/security/cacerts에 인증서를 설치하려고 시도했지만 모든 인증서를 신뢰하려고 시도했지만 문제가 지속됩니다 ...

미리 감사드립니다.

편집 :

당신이 코드로 예외를 재현 할 수 있습니다 :

java.net.ConnectException: Connection timed out: connect 
    at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source) 
    at java.net.PlainSocketImpl.connect(Unknown Source) 
    at java.net.SocksSocketImpl.connect(Unknown Source) 
    at java.net.Socket.connect(Unknown Source) 
    at sun.security.ssl.SSLSocketImpl.connect(Unknown Source) 
    at sun.security.ssl.BaseSSLSocketImpl.connect(Unknown Source) 
    at sun.net.NetworkClient.doConnect(Unknown Source) 
    at sun.net.www.http.HttpClient.openServer(Unknown Source) 
    at sun.net.www.http.HttpClient.openServer(Unknown Source) 
    at sun.net.www.protocol.https.HttpsClient.<init>(Unknown Source) 
    at sun.net.www.protocol.https.HttpsClient.New(Unknown Source) 
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(Unknown Source) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) 
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source) 
    at java.net.URL.openStream(Unknown Source) 
    at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source) 
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) 
    at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) 
    at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) 
+0

예, https에서 작동합니다. 받고있는 예외에 대한 자세한 내용을 제공하십시오. – nablex

+0

나는 그것이 일어나는 지점을 재현하려고 노력했다. .. 나는 그것을 얻었다! 질문을 수정하겠습니다. –

+0

HTTP는 기본적으로 포트 80을 사용하며 HTTPS는 포트 443을 사용합니다. 서버가 실제로 HTTPS를 지원하지 않거나 다른 포트를 사용하고 있다는 느낌이 들게됩니다. – nablex

답변

1

문제는 회사 프록시, 그래서 내가 추가 한 :

InputSource source = new InputSource(urlWSDL); 
DocumentBuilder db = DocumentBuilderFactoryImpl.newInstance().newDocumentBuilder(); 
Document doc = (Document) db.parse(source); 

예외가있다 :

System.setProperty("https.proxySet", "true"); 
System.setProperty("https.proxyHost", this.getConfiguracionProxy().getUrlProxy()); 
System.setProperty("https.proxyPort", this.getConfiguracionProxy().getPuertoProxy()); 

받는 사람 :

System.setProperty("http.proxySet", "true"); 
System.setProperty("http.proxyHost", this.getConfiguracionProxy().getUrlProxy()); 
System.setProperty("http.proxyPort", this.getConfiguracionProxy().getPuertoProxy()); 

해결책을 찾았습니다. SoapUI 나 웹 브라우저에서 파일을 가져올 때 IP는 실제 응용 프로그램에서 사용 된 IP (실제 IP)가 아닙니다. 그렇다면 나는 프록시의 배후에 있다는 것을 깨달았다.

나는 Wireshark를 사용한 적이 없다 ... 나는 많은 것을 배웠다. 이것은 좋은 것이다.

저장된 프록시 구성을 시스템 속성으로 설정합니다.

감사합니다.