我最近将我的Web服务从Axis迁移到了CXF(2.1)。似乎Axis需要“axis.socketSecureFactory”。设置,CXF抓取默认值。如何将Java中的默认SocketFactory设置为我自己的实现(例如属性)?

要做的是设置默认的SocketFactory属性,例如设置我的信任库,密钥库和密码的属性。

有帮助吗?

解决方案

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

的“noreferrer”> javax.net.DefaultSocketFactory

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

设置

其他提示

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top