В разделе приведены сведения для диагностики и устранения проблем, связанных с расширением модуля web-toolkit. Рекомендации следует применять с учетом версии IDE, проекта и используемых компонентов ТЕЗИС.
Проблема связана с тем, что при создании модуля web-toolkit через THESIS Studio набор виджетов ТЕЗИС не добавляется в дескриптор GWT-модуля. Дескриптор имеет расширение .gwt.xml и располагается в каталоге:
modules/web-toolkit/src/<root package>/web/toolkit/ui
Важно!
Данная проблема исправлена в THESIS Studio версии 2.0.
Пример стандартного файла AppWidgetSet.gwt.xml:
<?xml version="1.0" encoding="UTF-8"?>
<module>
<inherits name="com.haulmont.cuba.web.widgets.WidgetSet" />
<inherits name="com.haulmont.charts.web.widgets.ChartsWidgetSet" />
<!-- project add-ons, replacements, properties and so on -->
</module>
Для устранения проблемы необходимо подключить набор виджетов ТЕЗИС. Наборы виджетов CUBA и компонента Charts подключать не требуется, так как они используются набором виджетов ТЕЗИС.
Пример корректного файла:
<?xml version="1.0" encoding="UTF-8"?>
<module>
<inherits name="com.haulmont.thesis.web.toolkit.ui.ThesisWidgetset"/>
<!-- project add-ons, replacements, properties and so on -->
</module>
Набор виджетов проекта не используется или при открытии страницы ТЕЗИС возникает ошибка
Пример ошибки:
Проблема связана с тем, что при инициализации сервлета жестко задано использование набора виджетов ТЕЗИС. В зависимости от того, развернут ли ThesisWidgetset в Tomcat, набор виджетов проекта может не использоваться либо может возникнуть ошибка при открытии страницы ТЕЗИС.
Важно!
Данная ошибка исправлена в версии ТЕЗИС 5.2.2 (TS-17651). Код, добавленный для обхода этой проблемы, можно удалить после перехода на указанную или более позднюю версию.
Для исправления ошибки на уровне проекта необходимо переопределить бин com.haulmont.thesis.web.sys.ThesisWebServletsInitializer в модуле web и изменить реализацию метода getMainServletInitParams, чтобы он возвращал Map параметров без параметра widgetset.
Пример:
package com.haulmont.thesis.testproject.web.sys;
import com.haulmont.thesis.web.sys.ThesisWebServletsInitializer;
import org.apache.groovy.util.Maps;
import org.atmosphere.cpr.ApplicationConfig;
import java.util.Map;
public class TestProjectServletsInitializer extends ThesisWebServletsInitializer {
@Override
protected Map<String, String> getMainServletInitParams() {
return Maps.of(ApplicationConfig.WEBSOCKET_SUPPORT_SERVLET3, "true");
}
}
После этого необходимо добавить бин в конфигурационный файл Spring модуля web.
Пример:
<bean id="thesis_WebServletsInitializer" class="com.haulmont.thesis.testproject.web.sys.TestProjectSer
В Tomcat развертывается набор виджетов ТЕЗИС
В сборке проекта в каталоге deploy/tomcat/webapps/app/VAADIN/widgetsets может находиться набор виджетов ТЕЗИС:
com.haulmont.thesis.web.toolkit.ui.ThesisWidgetset
Важно!
Данная ситуация будет исправлена в последующих версиях ТЕЗИС.
Фактически этот каталог не используется, так как применяемый набор виджетов определяется свойством веб-слоя cuba.web.widgetSet. Начиная с CUBA 7.2 набор виджетов проекта упаковывается в JAR-файл вида:
app-web-toolkit-<version>-client.jar
Файл помещается в каталог:
deploy/tomcat/webapps/app/WEB-INF/lib
После сборки каталог с набором виджетов ТЕЗИС можно удалить:
deploy/tomcat/webapps/app/VAADIN/widgetsets/com.haulmont.thesis.web.toolkit.ui.ThesisWidgetset
