Как исправить не-поточно-ориентированную фабрику клиента CXF с ленивой инициализацией? - PullRequest
3 голосов
/ 11 октября 2019

У меня есть (внешний) фабричный класс, который выполняет ленивую инициализацию клиента CXF не поточно-ориентированным способом.
(Возможно, он создает экземпляр клиента два или более раз, если вызывается слишком быстро.)

У класса есть защищенный метод, который выполняет инициализацию. Он вызывает метод по первому запросу.

Должен ли я создать свой собственный клиент в обход фабрики?
Каким-то образом заставить класс инициализировать клиента, отправив один запрос в одном потоке / вызвать защищенный метод?

Или это можно игнорировать, как это происходит в первые несколько запросов?

1 Ответ

5 голосов
/ 17 октября 2019

Если вы хотите быть уверенным, что инициализация происходит безопасным образом, вы можете вызвать метод установки из своего собственного кода, используя отражающий доступ к защищенному методу.

Я бы поговорил с поставщиком библиотеки, чтобы документировать правильный и сохранить способ инициализации. Поведение, которое вы описываете, похоже на ошибку фабрики / библиотеки.

...