设置默认的SocketFactory

jco*_*lin 5 java sockets ssl web-services cxf

我最近将我的Web服务从Axis迁移到了CXF(2.1).看来,虽然Axis需要"axis.socketSecureFactory"设置,但CXF会抓取默认值.如何将Java中的默认SocketFactory设置为我自己的实现(例如属性)?

打算做的是设置默认的SocketFactory属性,比如设置我的信任库,密钥库和密码的属性.

Nuo*_*oji 7

如果我们谈论标准套接字,则Socket.setSocketImplFactory(SocketImplFactory)用于更改普通套接字和ServerSocket.setSocketFactory(SocketImplFactory)服务器套接字的工厂.

如果您正在使用这些,请注意您只能设置这些工厂一次.

注意java套接字实现默认使用SocksSocketImpl(java.net中的包可见类),如果它发现工厂null以防万一你想要一个可以将包切换到标准java实现的工厂.


Pow*_*ord 6

根据OpenJDK7的源代码javax.net.SocketFactory,Sun JVM被硬编码为返回javax.net.DefaultSocketFactoryforgetDefault();

编辑:但是,默认SSLSocketFactory可以由安全属性设置 ssl.SocketFactory.provider