Неизвестный протокол: ссылка при установке пакетов osgi с компонентами веб-приложения в JBOSS EAP 7.2.x
Привет, мы используем сторонний продукт, который был разработан с использованием OSGI-пакетов с компонентами веб-приложений. По умолчанию он встраивается на сервер JETTY в виде веб-контейнера (с необходимыми файлами конфигурации для установки пакетов osgi в JETTY) для обслуживания веб-страниц в локальной среде и работает нормально, без проблем. Те же пакеты и веб-компоненты, которые упакованы вместе с jboss-deploy-structure.xml как war и развернуты в JBOSS EAP 7.2.x. Но он выдает исключение MalformedURLException, когда выполняет приведенный ниже фрагмент кода,
try{
if (bundleUrl.getProtocol().equals("file")) {
//reference: URL wraps a file: URL to avoid copying the file. https://ops4j1.jira.com/wiki/spaces/paxurl/pages/19202252/Reference+Protocol
URL newBundleUrl = new URL("reference:"+ bundleUrl);
installBundles(newBundleUrl.toExternalForm());
}
}catch(MalformedURLException e){
System.out.println("Cannot create reference url to install bundles:");
e.printStackTrace();
}
Когда JBOSS начинает загрузку StartUpServlet в контейнер, читая дескриптор web.xml, он пытается установить пакеты osgi в JBOSS, но JBOSS не понимает " reference: file: /// protocol", поэтому выдает исключение MalformedURLException. Я ссылался на эту ссылку и понимаю, что эталонный протокол может быть добавлен в качестве обработчика url в jvm и добавил https://mvnrepository.com/artifact/org.ops4j.pax.url/pax-url-reference/2.5.4 в модулях JBOSS, и я ссылался на то же самое в своем автономном приложении. XML как глобальные модули. А также я включил ниже аргументы jvm в standalone.conf.bat
-Djava.protocol.handler.pkgs=org.ops4j.pax.url
-Djboss.protocol.handler.modules = org.ops4j.pax.url
но все равно он выдает ту же ошибку. Я скопировал приведенный выше фрагмент кода и запустил его как отдельный файл Java (без сервлета) с аргументом JVM в виде -Djava.protocol.handler.pkgs=org.ops4j.pax.url и pax-url-reference-2.5.4.jar в CLASSPATH. он работает нормально. Единственная проблема с env сервера с JBOSS. Кто-нибудь знает, как обрабатывать пользовательские протоколы в jboss? Это действительно отстой.