Вопрос

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top