Java 轴1.4通过定制SecureSocketFactory

Java 轴1.4通过定制SecureSocketFactory,java,ssl,axis,keystore,sslsocketfactory,Java,Ssl,Axis,Keystore,Sslsocketfactory,我有一个应用程序,由于某些与环境相关的原因,我需要通过我自己的securesocketfactory。我通过了。基于此,我尝试用多种方式设定我的价值观。所有这些都列在下面 System.setProperty("org.apache.axis.components.net.SocketFactory", CustomSocketFactory.class.toString()); System.setProperty("org.apache.axis.components.net.SecureS

我有一个应用程序,由于某些与环境相关的原因,我需要通过我自己的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());
我是在我的定位器类实例化之前这样做的。但在axis连接发生的任何情况下,它都没有使用我的插座工厂

有没有办法通过我的定制袜子工厂?即使我可以通过我的自定义密钥管理器,它也可以完成这项工作

我真是束手无策!我尝试过的socketFactory等选项可能会说明这一点。非常感谢您的帮助。

当您拥有ServiceClient实例时,您可以获得选项并设置协议处理程序要使用的属性:

serviceClient.getOptions().setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER, sslProtocol);
关于这一点有点棘手的一点是,您不能只使用SSLSocketFactory,您必须提供org.apache.commons.httpclient.ProtocolSocketFactory,它定义了更多的方法

您还可以选择创建自己的HTTPClient实例并填充:

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

我发现了我的错误。我必须通过考试

System.setProperty("org.apache.axis.components.net.SocketFactory", "com.package.myclass");
System.setProperty("org.apache.axis.components.net.SecureSocketFactory","com.package.myclass");
我传递了错误的值


谢谢

axis 1.4.0中没有此类属性HTTPConstants.CUSTOM_PROTOCOL_处理程序。您好,您知道是否有方法在不接触全局设置的情况下应用此属性吗?谢谢