Я разрабатываю веб-службы с Apache CXF 2.7.8. Я использую wsdl2java для генерации SEI и реализаций. Существуют сотни конечных точек веб-службы.
Я использую встроенный причал.
Когда сервер запущен, для инициализации каждой конечной точки требуется несколько часов.
Я публиковал конечные точки с помощью метода Endpoint.publish (адрес, реализация), но я обнаружил, что экземпляр JAXBContext создается для каждой службы. Я исправил это, используя единственный экземпляр JAXBContext для каждой службы, и это помогло.
Но все же, запуск сервера происходит очень медленно.
В журналах этот фрагмент повторяется сотни раз.
cl: AbstractObservable m: setMessageObserver [main] 20:50:48 DEBUG - Принять:/
cl: Заголовки m: logProtocolHeaders [main] 20:50:48 DEBUG - нет Trust Decider для Conduit '{ http://cxf.apache.org } TransportURIResolver.http-conduit'. Предполагается, что будет принято Доверительное Решение.
cl: HTTPConduit $ WrappedOutputStream m: makeTrustDecision [main] 20:50:48 DEBUG - Conduit '{ http://cxf.apache.org } TransportURIResolver.http-conduit' был настроен для простого http.
cl: HTTPConduit m: setTlsClientParameters [main] 20:50:48 DEBUG - нет Trust Decider для Conduit '{ http://cxf.apache.org } TransportURIResolver.http-conduit'
cl: HTTPConduit m: logConfig [main] 20:50:48 DEBUG - поставщик Auth не настроен для Conduit '{ http://cxf.apache.org } TransportURIResolver.http-conduit'
cl: HTTPConduit m: logConfig [main] 20:50:48 DEBUG - Conduit '{ http://cxf.apache.org } TransportURIResolver.http-conduit' настроен для простого http.
cl: HTTPConduit m: logConfig [main] 20:50:48 DEBUG - регистрация входящего наблюдателя: org.apache.cxf.transport.TransportURIResolver$1@1405d451
Может ли кто-нибудь объяснить, что это значит? И если есть какой-то способ настроить эти параметры глобально только один раз?
Спасибо.
Это означает, что вы используете URL-адрес HTTP (или хуже: https) для чего-то, вероятно, местоположения WSDL. Таким образом, для каждого WSDL/schema/etc... он должен загружать их из удаленного места. Для более быстрого запуска поместите локальный wsdl и обратитесь к ним напрямую.