2015-01-20 7 views
2

일부 환경과 관련하여 내 자신의 securesocketfactory를 전달해야하는 애플리케이션이 있습니다. 나는 Axis 1.4 documentation을 거쳤다. 이것을 바탕으로 여러면에서 가치를 설정하려고했습니다. 아래에 모두 나와 있습니다.축 1.4 사용자 정의 SecureSocketFactory 전달

System.setProperty("org.apache.axis.components.net.SocketFactory", CustomSocketFactory.class.toString()); 
System.setProperty("org.apache.axis.components.net.SecureSocketFactory",CustomSocketFactory.class.toString()); 
System.setProperty("axis.socketFactory",CustomSocketFactory.class.toString()); 
System.setProperty("axis.socketSecureFactory",CustomSocketFactory.class.toString()); 
AxisProperties.setProperty("axis.socketSecureFactory", CustomSocketFactory.class.toString()); 
AxisProperties.setProperty("axis.socketFactory", CustomSocketFactory.class.toString()); 
AxisProperties.setProperty("org.apache.axis.components.net.SecureSocketFactory", CustomSocketFactory.class.toString()); 
AxisProperties.setProperty("org.apache.axis.components.net.SocketFactory", CustomSocketFactory.class.toString()); 

Locator 클래스가 인스턴스화되기 바로 전에이 작업을 수행하고 있습니다. 하지만 축 연결이 끊어진 경우에는 소켓 팩토리를 사용하지 않았습니다.

내 맞춤 SocketFactory를 전달할 방법이 있습니까? 사용자 지정 KeytoreManager를 전달할 수 있다고하더라도 작업을 수행합니다.

내 재치가 끝났습니다. socketFactory와 같은 옵션을 시도해 볼 수 있습니다. 어떤 도움이라도 대단히 감사합니다. 프로토콜 핸들러가 사용하는

답변

2

:

는 또한 HttpClient를 자신의 인스턴스를 생성하고 그 채우기 옵션이 있습니다. 나는 그냥 지나쳐야만했다.

System.setProperty("org.apache.axis.components.net.SocketFactory", "com.package.myclass"); 
System.setProperty("org.apache.axis.components.net.SecureSocketFactory","com.package.myclass"); 

잘못된 값을 전달하고 있었다.

감사합니다.

1

당신이 당신의 ServiceClient 인스턴스가있는 경우,이 옵션을 얻을 속성을 설정할 수 있습니다 이것에 대해 조금 까다로운 것 중

serviceClient.getOptions().setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER, sslProtocol); 

한 당신이 단지를 사용할 수있다 SSLSocketFactory의 경우 org.apache.commons.httpclient.protocol.ProtocolSocketFactory을 제공해야합니다.이 방법은 몇 가지 방법을 더 정의합니다. 내 실수를 발견

serviceClient.getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT, Boolean.TRUE); 
serviceClient.getOptions().setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);