Я сам нашел решение для Glassfish: по сути, я просто развернул класс (SharedClassLoader
), который наследуется от URLClassLoader
в качестве jar общей библиотеки в вышеупомянутом каталоге. Затем я использую этот загрузчик классов в качестве загрузчика: при вызове веб-службы иерархия загрузчиков классов расширяется следующим образом: создается экземпляр SharedClassLoader
для URL-адреса, если он еще не существует, и добавляется в качестве делегата к DelegatingClassLoader
в дереве загрузчика классов. Делая это для каждого веб-сервиса с тем же экземпляром SharedClassLoader
, он действует как начальная загрузка для увеличения загрузки классов. Банку, на которую ссылается SharedClassLoader
, можно также развернуть с помощью одного из веб-сервисов, поскольку Glassfish распаковывает контейнеры в $AS_HOME/domains/domain1/applications/APPLICATION_NAME/LIBRARY_NAME.jar
.
Надеюсь, это поможет всем, у кого возникла такая же проблема. Я решил эту проблему для моей дипломной работы. Если кому-то нужна дополнительная информация, просто спросите, я могу отправить вам свою диссертацию.