Установка SocketFactory по умолчанию - PullRequest
5 голосов
/ 29 апреля 2009

Я недавно перенес свои веб-сервисы из Axis в CXF (2.1). Похоже, что в то время как Axis требовался набор «axis.socketSecureFactory», CXF получает значение по умолчанию. Как установить SocketFactory по умолчанию в Java для моей собственной реализации (например, свойства)?

Что я не хочу сделать, так это установить свойства SocketFactory по умолчанию, такие как установка свойства для моего доверенного хранилища, хранилища ключей и паролей.

Ответы [ 2 ]

7 голосов
/ 30 апреля 2009

Если речь идет о стандартных сокетах, то Socket.setSocketImplFactory(SocketImplFactory) используется для изменения фабрики для обычных сокетов и ServerSocket.setSocketFactory(SocketImplFactory) для серверных сокетов.

Если вы используете их, обратите внимание на тот факт, что вы можете установить эти фабрики только один раз.

Обратите внимание, что в реализации java-сокета по умолчанию используется SocksSocketImpl (видимый класс пакета в java.net), если он обнаруживает, что фабрика имеет значение null в случае, если вам нужна фабрика, которая может переключить пакет на стандартную реализацию Java. 1008 *

6 голосов
/ 29 апреля 2009

Согласно исходному коду OpenJDK7 для javax.net.SocketFactory, JVM Sun жестко задана для возврата javax.net.DefaultSocketFactory для getDefault();

Редактировать: Однако SSLSocketFactory по умолчанию можно установить с помощью свойства безопасности ssl.SocketFactory.provider

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...