Pregunta

Recientemente migré mis servicios web de Axis a CXF (2.1). Parece que mientras Axis necesitaba el " axis.socketSecureFactory " establecido, CXF toma el valor predeterminado. ¿Cómo configuro el SocketFactory predeterminado en Java para mi propia implementación (como una propiedad)?

Lo que estoy no buscando es establecer las propiedades predeterminadas de SocketFactory, como establecer la propiedad para mi almacén de confianza, almacén de claves y contraseñas.

¿Fue útil?

Solución

De acuerdo con el código fuente de OpenJDK7 para javax. net.SocketFactory , la JVM de Sun está codificada para devolver un javax.net.DefaultSocketFactory para getDefault();

Editar: Sin embargo, la propiedad de seguridad ssl.SocketFactory.provider puede establecer el valor predeterminado de SSLSocketFactory

Otros consejos

Si estamos hablando de los sockets estándar, se utiliza Socket.setSocketImplFactory (SocketImplFactory) para cambiar la fábrica de los sockets comunes y ServerSocket.setSocketFactory (SocketImplFactory) para los sockets del servidor .

Si está utilizando estos, tome nota del hecho de que solo puede configurar estas fábricas una vez.

Tenga en cuenta que la implementación del socket java utiliza de forma predeterminada SocksSocketImpl (una clase de paquete visible en java.net) si descubre que la fábrica es null en caso de que quiera una fábrica que pueda cambiar el paquete a Implementación estándar de Java.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top