Неизвестный протокол: ссылка при установке пакетов osgi с компонентами веб-приложения в JBOSS EAP 7.2.x - PullRequest
0 голосов
/ 02 сентября 2018

Привет, мы используем сторонний продукт, разработанный с использованием пакетов 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», так что это исключение MalformedURLE. Я ссылался на эту ссылку и понимаю, что эталонный протокол может быть добавлен в качестве обработчика URL-адреса в jvm и добавлен org.ops4j.pax.url: pax-url-reference-2.5.4.jar в модулях JBOSS, и я ссылался на то же самое в моем standalone.xml и global-modules . А также я включил ниже аргументы 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 в пути к классам. он работает нормально. Единственная проблема с env сервера с JBOSS. Кто-нибудь знает, как обрабатывать пользовательские протоколы в jboss? Это действительно отстой.

...