Impostazione della SocketFactory predefinita
-
03-07-2019 - |
Domanda
Di recente ho migrato i miei servizi web da Axis a CXF (2.1). Sembra che mentre Axis necessitava di "axis.socketSecureFactory" set, CXF prende il valore predefinito. Come posso impostare SocketFactory predefinito in Java sulla mia implementazione (come una proprietà)?
Quello che non sto non cercando di impostare le proprietà predefinite di SocketFactory come l'impostazione della proprietà per il mio truststore, keystore e password.
Soluzione
Secondo il codice sorgente OpenJDK7 per javax. net.SocketFactory
, Sun JVM è codificato per restituire un javax.net.DefaultSocketFactory
per getDefault();
Modifica: tuttavia, SSLSocketFactory predefinito può essere impostato dalla proprietà di sicurezza ssl.SocketFactory.provider
Altri suggerimenti
Se stiamo parlando dei socket standard, allora Socket.setSocketImplFactory (SocketImplFactory)
viene usato per cambiare fabbrica per socket ordinari e ServerSocket.setSocketFactory (SocketImplFactory)
per server socket .
Se li stai usando, prendi nota del fatto che puoi impostare queste fabbriche solo una volta.
Nota che l'implementazione del socket java è predefinita usando SocksSocketImpl (una classe visibile del pacchetto in java.net) se scopre che la factory è null
nel caso tu voglia una factory che può passare da pack a implementazione java standard.