Как использовать аддон обновления в vaadin?

Я пытаюсь использовать аддон обновления в vaadin. Но метод обновления никогда не выполняется. Что мне не хватает?

@VaadinUI
@PreserveOnRefresh
public class RootUI extends UI {
    @Override
    protected void init(VaadinRequest request) {
        REFRESHER.setRefreshInterval(500);
        REFRESHER.addListener(new ChatRefreshListener());
        addExtension(REFRESHER);
    }

    public static final Refresher REFRESHER = new Refresher();

    public class ChatRefreshListener implements RefreshListener {
        @Override
        public void refresh(final Refresher source) {
            System.out.println("test"); //this is never executed
        }
    }
}

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class MyApp extends SpringBootServletInitializer { 
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(MyApp.class);
}
}

<vaadin.version>7.4.0.alpha2</vaadin.version>


person membersound    schedule 23.06.2014    source источник
comment
1) Какую версию Vaadin вы используете? 2) Поделитесь конфигурацией вашего веб-приложения, либо web.xml, либо на основе аннотаций.   -  person Morfic    schedule 23.06.2014
comment
Спасибо, смотрите мое обновление   -  person membersound    schedule 23.06.2014
comment
Я имею в виду web.xml или @VaadinServletConfiguration. Дополнительная информация: vaadin.com/book/vaadin7/-/page/application .environment.html и vaadin.com /wiki/-/wiki/Main/Создание+а+сервлета+3.0+приложения   -  person Morfic    schedule 23.06.2014
comment
Я использую надстройку vaadin4spring (github.com/peholmst/vaadin4spring), для которой требуется только SpringAwareVaadinServlet настроен. У меня нет дополнительных классов конфигурации web.xml или сервлета.   -  person membersound    schedule 23.06.2014
comment
Возможно, вам придется использовать @Widgetset и убедиться, что ваш xml включает надстройку. Вы можете увидеть пример в репозитории vaadin4spring: github.com/peholmst/vaadin4spring/blob/master/   -  person Morfic    schedule 23.06.2014
comment
Должен ли я применить какие-либо дальнейшие шаги? Я пробовал @Widgetset(value = "com.github.wolfie.refresher.RefresherApplicationWidgetset"), но обновление все равно не вызывается.   -  person membersound    schedule 23.06.2014
comment
Да, вам нужно скомпилировать набор виджетов. Тот же пример проекта имеет конфигурацию pom в src/main, и вам нужно запустить mvn clean vaadin:compile (vaadin.com/book/vaadin7/-/page/clientside.compiling.html)   -  person Morfic    schedule 23.06.2014


Ответы (1)


Во-первых, использование расширения в константе в лучшем случае очень опасно, но, скорее всего, это не сработает.

Но самое главное, я отказался от Refresher в пользу UI.setPollInterval(), который был представлен в Vaadin 7.1. Vaadin 7.2 (я думаю) представил PollListener, так что теперь вы также получаете события для каждого опроса.

Я думаю, что теперь, когда Refresher на 100% интегрирован в Vaadin, я должен сделать это устаревшим явным.

person Henrik Paul    schedule 23.06.2014
comment
Спасибо, да, конечно, в продакшене я бы добавил расширение с помощью Spring или вроде того. Во всяком случае, не могли бы вы указать мне пример PollListener? Я почему-то не могу найти никаких подсказок о том, как использовать этот класс... - person membersound; 23.06.2014
comment
Или мы говорим о фиче @Push vaadin? В этом случае я пытаюсь найти альтернативу, так как функция push пока не работает с аддоном vaadin4spring. - person membersound; 23.06.2014
comment
@HenrikPaul, скорее всего, это проблема с конфигурацией набора виджетов, с которой он столкнется и с другими надстройками, если не будет решен. +1 за обновление интеграции обновления. Я думаю, что Пол имеет в виду vaadin.com/wiki/-/wiki/Main /Использование+опроса - person Morfic; 23.06.2014
comment
Ок, по крайней мере, опрос работает один раз. Я создал новый вопрос о том, как правильно использовать PollListener: stackoverflow.com/questions/24363588/ - person membersound; 23.06.2014