У меня есть клиент веб-службы стиля JAX-WS, который был автоматически сгенерирован с помощью среды IDE NetBeans.
Сгенерированный прокси factory (extends javax.xml.ws.Service) делегирует создание прокси различным методам Service.getPort. Приложение, которое я поддерживаю, создает экземпляр factory и получает прокси каждый раз, когда он вызывает целевую услугу.
Было показано, что создание новых экземпляров proxy factory было дорогостоящим, учитывая, что документация WSDL, поставляемая конструктору factory, HTTP URI, повторно извлекается для каждого экземпляра.
У нас был успех в улучшении производительности путем кэширования WSDL. Но это имеет уродливое обслуживание и последствия для упаковки для нас.
Я хотел бы изучить пригодность кэширования прокси-сервера factory. Безопасно ли, например, два разных клиентских класса, выполняющихся на одной и той же JVM и нацеленных на один и тот же веб-сервис, безопасно использовать один и тот же factory для получения отдельных прокси-объектов (или общего, повторного)?
Мне не удалось найти руководство ни из спецификации JAX-WS, ни из документации javax.xml.ws API. Множество factory -proxy для меня непонятно. Наличие Service.getPort, а не Service.createPort не внушает доверия.