Pergunta

Recentemente, migrei meus serviços da Web do Eixo para o CXF (2.1). Parece que, embora o Axis precisasse do conjunto "Axis.SocketSecureFactory", o CXF agarra o padrão. Como defino o SocketFactory padrão em Java para minha própria implementação (como uma propriedade)?

O que eu sou não Olhar para fazer é definir as propriedades do SocketFactory padrão, como definir a propriedade para meu TrustStore, Keystore e senhas.

Foi útil?

Solução

De acordo com o código fonte do OpenJDK7 para javax.net.SocketFactory, a JVM Sun é codificada para devolver um javax.net.DefaultSocketFactory por getDefault();

EDIT: No entanto, o SSLSocketFactory padrão pode ser definido pela propriedade de segurança ssl.SocketFactory.provider

Outras dicas

Se estamos falando sobre os soquetes padrão, então Socket.setSocketImplFactory(SocketImplFactory) é usado para mudar de fábrica para soquetes comuns e ServerSocket.setSocketFactory(SocketImplFactory) para soquetes de servidor.

Se você estiver usando isso, observe o fato de que você só pode definir essas fábricas uma vez.

Observe os padrões de implementação do soquete Java para usar o SockSSocketImpl (uma classe visível do pacote em java.net) se descobrir que a fábrica está null Caso você queira uma fábrica que possa mudar o pacote para a implementação Java padrão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top