Проблема с разворачиванием на Wildfly 12

Добрый день,

Я знаком достаточно хорошо с Vaadin, но с Cuba работаю недавно.

Сначала о проекте:

  • Проект использует Postgres, Cuba studio 6.0 SE, BPM plugin, раздельные DS для Cuba и бизнес данных… Не знаю, что еще может быть важно.
  • Все работает нормально на Tomcat
  • Следовал инструкциям для Wildfly, использую Single WAR, проблемы с ClassCast прошли, все в порядке

Проблема возникает при открытии программы, самый низ стека:

Caused by: java.lang.IllegalArgumentException: jquery.min.js could not be found. Make sure you've added the corresponding WebJar and please check for typos.
	at com.haulmont.cuba.web.sys.WebJarResourceUtils.throwNotFoundException(WebJarResourceUtils.java:163)
	at com.haulmont.cuba.web.sys.WebJarResourceUtils.getFullPath(WebJarResourceUtils.java:123)
	at com.haulmont.cuba.web.sys.WebJarResourceUtils.getWebJarPath(WebJarResourceUtils.java:63)
	at com.haulmont.cuba.web.sys.CubaBootstrapListener.getWebJarResource(CubaBootstrapListener.java:69)
	at com.haulmont.cuba.web.sys.CubaBootstrapListener.modifyBootstrapPage(CubaBootstrapListener.java:51)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
	... 66 more

Я так понимаю, что webjar с jQuery для чего-то нужен при bootstrap.

  • Если я руками добавляю jquery-1.12.4.jar к web.dependencies - ТО ВСЕ РАБОТАЕТ на Wildfly - т.е. правлю файл прямо внутри WAR (последняя строка ниже)
refdata-global-0.1-SNAPSHOT.jar
bpm-web-6.9.0.jar
cuba-web-6.9.0.jar
bpm-gui-6.9.0.jar
bpm-global-6.9.0.jar
cuba-rest-api-6.9.0.jar
cuba-idp-6.9.0.jar
cuba-gui-6.9.0.jar
cuba-client-6.9.0.jar
cuba-global-6.9.0.jar
refdata-web-0.1-SNAPSHOT.jar
jquery-1.12.4.jar
  • Но собрать проект с правильным web.dependencies не могу. Добавлял зависимость к модулям - не помогает. Например так:
configure(webModule) {
    configurations {
        webcontent
    }

dependencies {
    provided(servletApi)
    compile(globalModule)
    compile('org.webjars:jquery:1.12.4')
    webcontent('org.webjars:jquery:1.12.4')
}

Со сборщиком WAR все в порядке? Как мне добавить webjar к проекту?
И вообще не понятно зачем нужен jquery - у меня простой проект с одним экраном - список/редактор сущности. BPM просто подключен.

Еще раз:

  • на Tomcat все работает из Studio
  • на Wildfly 12 работает при ручном изменении web.dependencies

Спасибо

Михаил

Здавствуйте,

А на какой операционной системе вы запускаете Wildfly? CentOS?

Изменять web.dependencies не нужно, это проблема касается загрузки классов и ресурсов внутри WAR. По какой-то причине загрузчик классов веб-приложения не видит ресурсы из jquery-1.12.4.jar.

Запускаю пока на Windows 10 …

Может и не надо менять web.dependencies, но это помогает - после этого все работает.

Ошибка серверная - сервер пытается разрешить запрос на ресурс из webjar архива и не находит. Я предполагаю, что com.haulmont.cuba.web.sys.WebJarResourceUtils использует web.dependencies для разрешения jar файлов с webjar ресурсами ??? Вместо того, чтобы проходить по всем jar файлам в classpath. Но это только догадка.

Спасибо, мы занимаемся проблемой. Постараемся оперативно выпустить обновление.

1 симпатия

Пока мы работаем над исправлением, вы можете воспользоваться обходным путём. Добавьте в зависимости модуля web зависимость:

compile 'org.webjars:webjars-locator-jboss-vfs:0.1.0'

Ваш WAR будет запущен в Wildfly 12 без ошибок.

Мы выпустили версию 6.9.1 с исправлением, пожалуйста, обновите версию платформы в проекте.