Question

J'ai récemment migré mes services Web d'Axis vers CXF (2.1). Il semble que si Axis avait besoin de "axis.socketSecureFactory" CXF récupère la valeur par défaut. Comment définir le SocketFactory par défaut en Java sur ma propre implémentation (comme une propriété)?

Ce que je ne recherche pas, c’est de définir les propriétés par défaut de SocketFactory, telles que la définition de la propriété pour mon fichier de clés certifiées, mon magasin de clés et mes mots de passe.

Était-ce utile?

La solution

Selon le code source OpenJDK7 pour javax. net.SocketFactory , la JVM de Sun est codée en dur pour renvoyer un javax.net.DefaultSocketFactory pour getDefault ();

Modifier: Cependant, SSLSocketFactory par défaut peut être défini par la propriété de sécurité ssl.SocketFactory.provider

Autres conseils

Si nous parlons des sockets standard, alors Socket.setSocketImplFactory (SocketImplFactory) est utilisé pour changer de fabrique pour les sockets ordinaires et ServerSocket.setSocketFactory (SocketImplFactory) pour les sockets serveur .

Si vous les utilisez, prenez note du fait que vous ne pouvez configurer ces usines qu’une seule fois.

Notez que l'implémentation du socket java utilise par défaut SocksSocketImpl (une classe de paquet visible dans java.net) si elle découvre que la fabrique est null si vous voulez une fabrique pouvant basculer le paquet vers le implémentation Java standard.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top