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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top