设置默认的SocketFactory
-
03-07-2019 - |
题
我最近将我的Web服务从Axis迁移到了CXF(2.1)。似乎Axis需要“axis.socketSecureFactory”。设置,CXF抓取默认值。如何将Java中的默认SocketFactory设置为我自己的实现(例如属性)?
我不要做的是设置默认的SocketFactory属性,例如设置我的信任库,密钥库和密码的属性。
解决方案
根据 javax的OpenJDK7源代码。 net.SocketFactory
,Sun JVM被硬编码为返回 getDefault();
javax.net.DefaultSocketFactory
编辑:但是,默认的SSLSocketFactory可以由安全属性 ssl.SocketFactory.provider
其他提示
如果我们讨论标准套接字,那么 Socket.setSocketImplFactory(SocketImplFactory)
用于更改普通套接字的工厂和 ServerSocket.setSocketFactory(SocketImplFactory)
用于服务器套接字
如果您使用这些,请注意您只能设置这些工厂一次。
注意java套接字实现默认使用SocksSocketImpl(java.net中的包可见类),如果它发现工厂是 null
,以防你想要一个可以将包切换到的工厂标准的java实现。
不隶属于 StackOverflow