Использование надстройки vaadin EasyUpload - скомпилируйте набор виджетов с помощью maven

Я новичок в vaadin и впервые пытаюсь использовать надстройку EasyUpload надстройка

Я использую maven для создания своего проекта и изменил свой pom.xml таким образом:

<project>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>My-vaadin-webapp</artifactId>
  <packaging>war</packaging>

<!-- Add-On Repository -->
<repositories>
    <repository>
        <id>vaadin-addons</id>
        <url>http://maven.vaadin.com/vaadin-addons</url>
    </repository>
</repositories>


<dependencies>
    <dependency>
        <groupId>org.vaadin.addon</groupId>
        <artifactId>easyuploads</artifactId>
        <version>7.0.1</version>
    </dependency>   
</dependencies>

</project>

Но когда попробовать

MultiFileUpload

я получаю следующий результат:

введите здесь описание изображения

Я прочитал, что должен скомпилировать свой набор виджетов, но я не использую собственный набор виджетов, я использую набор виджетов по умолчанию.

Это мой web.xml:

    <?xml version="1.0" encoding="UTF-8"?>
<web-app>
    <display-name>MyApp</display-name>



    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>

    <listener>
      <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>

    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

    <servlet>
        <servlet-name>MyServlet</servlet-name>
        <servlet-class>com.myApplication.AutowiringApplicationServlet</servlet-class>
        <init-param>
            <description>Vaadin UI class to use</description>
            <param-name>UI</param-name>
            <param-value>com.myApplication.Application</param-value>
        </init-param>   

    </servlet>


    <servlet-mapping>
        <servlet-name>VaadinApplication</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

</web-app>

Где я делаю неправильно? Что я могу сделать, чтобы решить мою проблему?


person Skizzo    schedule 21.03.2014    source источник


Ответы (2)


Создайте набор виджетов в папке src/main/resources в произвольном пакете (например, x.y). Например, назовите его AppWidgetSet.gwt.xml.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.5.1//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.5.1/distro-source/core/src/gwt-module.dtd">
<module>
    <inherits name="com.vaadin.DefaultWidgetSet" />

    <set-property name="user.agent" value="safari"/>  

    <inherits name="org.vaadin.easyuploads.Widgetset" />
</module>

Аннотируйте свой пользовательский интерфейс следующим образом:

@Widgetset("x.y.AppWidgetSet")

Часть «наследует» автоматически генерируется целью mvn vaadin:update-widgetset на основе зависимостей вашего pom. Поскольку я включил здесь multifileupload, вам не нужно вызывать его на этот раз.

Сделайте mvn vaadin:compile. Обновите свой проект и сервер.

person acsadam0404    schedule 24.03.2014
comment
Когда я запускаю mvn vaadin:compile, я получаю [ERROR] Не удалось выполнить цель com.vaadin:vaadin-maven-plugin:7.1.12:compile (default-cli) в проекте myApp: модуль GWT com.vaadin.DefaultWidgetSet не найден в источники или ресурсы проекта. -› [Помощь 1] - person Skizzo; 24.03.2014
comment
Вы аннотировали свой пользовательский интерфейс с помощью @Widgetset? - person acsadam0404; 24.03.2014
comment
Спасибо, теперь все работает, но я запускаю mvn vaadin:update-widgetset, который заменил ‹inherits name=com.wcs.wcslib.vaadin.widget.multifileupload.MultiFileUploadWidgetSet /› на ‹inherits name=org.vaadin.easyuploads.Widgetset /› - person Skizzo; 24.03.2014
comment
Все в порядке, я думал, вы используете MultiFileUpload, который является еще одним дополнением. Вы должны это проверить :) vaadin.com/directory#addon/multifileupload:vaadin - person acsadam0404; 24.03.2014
comment
Сейчас я использую аддон multifileupload, но не могу найти несколько примеров по этому поводу. Можете ли вы дать мне несколько предложений? - person Skizzo; 25.03.2014
comment
Извините, но я знаю только примеры на странице аддона. Вы должны проверить исходный код из github, затем вы можете понять это из javadoc/source. Страница аддона ссылается на проект github. - person acsadam0404; 25.03.2014

Когда вы используете дополнительные виджеты, вам придется перекомпилировать весь набор виджетов. В зависимости от ваших целей maven должен существовать один такой...

person André Schild    schedule 21.03.2014