Видеоурок — Java + Intellij IDEA 9 + GWT 2.0 + Apache Tomcat

    Записал видеоурок, думаю многим начинающим он пойдёт на пользу и ответит на многие вопросы.

    image

    Скачать в разрешении 1280x800 можно здесь Размер 32 мегабайта.

    Вы узнаете, как создать приложение на GWT в среде Intellij IDEA 9. Мы напишем простой асинхронный запрос, сгенерируем число на сервере, отправим ответ клиенту и выведем результат на экране.

    Далее, всё задеплоим на сервер Apache Tomcat и покажем работающий пример.

    Конечно, многие нюансы опущены. Всё-таки урок для начинающий гвт-шников!
    Удачи в программировании!

    ПС. Один момент сглючил при сжатии видео, когда нужно было скопировать библиотеку gwt-servlet.jar с папки GWT 2.0 в папку WEB-INF/lib.
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 31

      +3
      библиотеку gwt-servlet.jar лучше не копировать в WEB-INF/lib, а добавить её в конфигурацию Artifacts. только вчера с такой проблемой столкнулся

      и спасибо за видеоурок. думаю, многим он будем полезен.
        0
        Может быть, но лучше в самом начале все либы поместить в папку web/web-inf/lib, а оттуда их добавить в classpath проекта
          0
          вряд ли. потом путаница возникает.
          раз уж IDE предоставляет инструменты для работы с библиотеками и формированием war, то почему бы ими не воспользоваться.
            +1
            я тоже просто в артифакты добавляю и нет проблем
          0
          Не тема этого топика, но все же… Не будет ли у вас идей как делать интерфейс на основе плагинов через нечто типа OSGI? Да, это противоречит идеологии GWT, но было бы крайне удобно.
            0
            попробуйте Spring DM for OSGi, Spring почти прекрасно интегрируется и в GAE и в GWT. там прозрачная реализация, может быть подкинет вам идей.
              0
              Видел.

              В плагиновой системе в GWT основная проблема в том, что много кода будет дублироваться в каждом модуле. Грубо говоря, нельзя выделить ядро в отдельный модель. Поэтому надо либо как-то хитро извращаться с Generator'ами и Linker'ами, либо я не знаю…
            +2
            хороший видеоурок для начинающих
              +2
              IDEA рассматривалась которая IDEA Community Edition? Или платная? Мне кажется для GWT самое оптимальная среда это Eclipse c родным плагином от Google.
                +3
                к сожалению, Community Edition не поддерживает GWT, как и многое другое.
                плагин для Eclipse от Google прекрасен, но в Eclipse столько мельких и не очень недоработок, что я после очередной попытки его использовать, через полчаса сдаюсь и возвращаюсь в IntellijIdea.
                  0
                  у меня точь в точь, тоже самое)
                    0
                    А у меня почему-то наоборот. Скорее всего уже привык к Эклипс, начиная с 3.2
                      0
                      это у меня случилось, когда я изучал спринг, в Идее как то проще было
                    0
                    А триал есть у IDEA? Недавно перешел на ихний phpStorm с Zend Studio (форк Eclipse) — доволен блин как слон, производительностью, некоторых фишек правда не достает, но отсутствие лагов и глюков в уже реализованном доставляет.
                      +1
                      есть, 30 дней
                        +1
                        есть Ultimate Edition с 30 дневным триальным ограничением, есть бесплатная Community Edition, с рядом ограничений (вот сравнение). те, кому нужна полная версия, но они по каким-либо причинам они не могут заплатить, обычно используют EAP, предрелизную сборку, обычно очень стабильную, там тоже ограничение на использование в 30 дней, но не реже чем раз в 30 дней выходит новая сборка.
                          0
                          Пасиииба.
                        0
                        завидую вашему терпению — меня обычно минут на 10 хватает всего
                          0
                          а я бывает даже баги правлю в Eclipse (: но всё не исправишь, да и время дороже.
                          недавно вот не выдержал Eclipse'овского автоформатирования html, оно просто ужасно. казалось бы банальная вещь, да и пережить её можно, но очень не хочется.
                      +1
                      Спасибо прям то что было нужно, обязательно посмотрю в ближайшие дни.
                        –2
                        Не должно web-приложение создаваться с таким огромным количеством костылей. Применение GWT допустимо, если вы, так же как и google, хотите иметь единую платформу, на базе которой планируете строить и объединять большое число web-сервисов. Лишь в этом случае плюсы GWT перевешивают его минусы. Во всех остальных случаях, я бы порекомендовал отказаться от его использования.
                          +2
                          очень неубедительно. о каких костылях вы говорите? в итоге вы получаете кроссбраузерный javascript, да, пусть тяжелый, но очень функциональный и весьма расширяемый в любую сторону.
                          конечно же, в сайте, где хватает 3 статичных страничек, он бессмысленен. в других же случаях он вполне себе в списке рекомендуемых к рассмотрению кандидатов.
                            0
                            >> очень неубедительно. о каких костылях вы говорите?

                            1) Ужасная тестируемость, профилируемость, спагетти-код из вызовов singleton-ов
                            2) Длительная перекомпиляция кода (бесконечные Compiling permutation… даже если отключить всю«кросбраузерность» в dev-mode)
                            3) периодические проблемы с сериализацией из-за рассинхронизации кода на клиенте и сервере (спасает только clean)
                            4) Что бы отвязать DAO-код сервера от клиента, приходится создавать промежуточный слой из TO (Тransfer Objects)
                            5) Проблемы при дебаге (может случайно повиснуть, может сыпануть левыми исключениями и т.д.)
                            6) java.util.Date и часовые пояса
                            7) Раз сделали компиляцию java 2 javascript, то могли бы и java 2 css приделать
                            8) Общая тормознутость толстого javascript-клиента (дружно вспомнили google wave, google buzz)

                            >>в итоге вы получаете кроссбраузерный javascript, да, пусть тяжелый, но очень функциональный и весьма расширяемый в любую сторону.
                            конечно же, в сайте, где хватает 3 статичных страничек, он бессмысленен.

                            это никак не противоречит тому, что я написал в самом вначале
                              +2
                              1. отличная тестируемость: JUnit, GWTTestCases, Selenium, профилируемость: Firebug, Compile Report, SpeedTracer, спагетти-код может и присутствует, но только в уже откомпилленом варианте, который никто поддерживать в здравом уже не будет, на что тогда вообще создавать проект в GWT;
                              2. длительная, да. минус конечно, но вполне терпимый;
                              3. это руки;
                              4. кхм, это вы не видели как в других фреймворках это делается. если вообще возможно;
                              5. все могут. я, честно сказать, не сталкивался, но вполне допускаю. но это рабочие моменты и они к вопросу «использовать или нет» не относятся;
                              6. (:
                              7. это уж слишком, как по мне. да и с дизайнерами проще разговаривать. впрочем, это фичареквест больше чем недостаток. а что-то компилирует?
                              8. это из серии «потому что», вот у Seesmic не очень то и подтормаживает.

                              я, признаться честно, GWT изучаю пару месяцев и у меня есть о чем сказать в негативном ключе, но вы уж очень предвзяты. вполне допускаю, что это не идеальный фреймворк, но уж точно один из тех, на которые стоит взглянуть. а учитываю хорошую интеграцию в GAE, а значит и неплохой бесплатный хостинг + привязка к домену, так и вообще прекрасный вариант.
                                0
                                > 1. отличная тестируемость: JUnit, GWTTestCases, Selenium, профилируемость: Firebug, Compile Report, SpeedTracer

                                Из всего перечисленного какое-то отношение к gwt имеют только GWTTestCases и Compile Report. Все остальное обычный набор web-разработчика.

                                  0
                                  и? мы же хотим тестировать наше веб приложение? или нет? а вы говорите об «ужасной тестируемости».

                                  а для какие языки \ фреймворки подходят по вашему списку? может я чего не знаю просто.
                                    0
                                    Особенности/ограничения GWT связывают Java/Javascript/Web-разработчиков по рукам и ногам, лишая их возможности нормального использования своих любимых библиотек и инструментов. Полноценное тестирование с помощью GWTTestCase по сложности и неочевидности трюков и хаков запросто переплюнет тестируемый код. Прикрутить Selenium к такой горе асинхронного жаваскрипта тоже не простая задача, решаемая конечно — но и не без дополнительных ограничений.

                                    Архитектура GWT заточена под написание небольших виджетов, а ля гуглмапс. Их написание/интеграцию GWT действительно сильно упрощает. Когда же пишется большое приложение, то как не верти — а все равно выходит нагромождение из анти-паттернов и велосипедов.

                                    Я с gwt сталкиваюсь в работе периодически на протяжении последних 2 лет ещё со времен версии 1.4. В пяти случаях из ста его выбор может стать действительно лучшим техническим решением. Но далеко не всегда нужны свистелки, недокросбраузерность, интеграция в GAE(с тамим числом ограничений) и хостинг непонятно где. Для меня gwt по прежнему расшифровывается как google widget toolkit. И лично я подожду ещё годик другой, пока пока он не станет полноценным web toolkit-ом
                                      +1
                                      Мы писали наш проект (веб-дванольный) без GWT (на tapestry + «набор любимых библиотек»), и он рухнул под собственным весом при необходимости добавить очередную фичу. GWT с версии 1.3 еще, помог нам щас расти и расти, количество фич просто безумно, код весь статически типизирован и РАБОТАЕТ.

                                      Мы с радостью избавились от наших «любимых библиотек и инструментов», которые просто напросто костыли, и теперь девелопим и отлаживаем в IDEA/Eclipse, а с GWT 2.0 делаем это еще и на любом бровзере.

                                      Приложение огромно, вместе с серверсайдом 1 миллион строк, из них 400К клиентский код на GWT. И ничо 8-)

                                      В версии 2.0 добавили подкачку кода, чтобы ускорить первоначальную загрузку (отложить на потом загрузку редких диалогов итд), так что мы теперь вроде как расслабляемся.
                                0
                                Плюсы:
                                1. Если много модулей используют одни и те же классы, DAO-объекты, и т.д., то можно вынести всё в отдельный модуль (например, модуль только с сериализованными объектами).
                                2. Моментальное обновление (Hosted Mode)

                                Из недостатков, с которыми я столкнулся в ГВТ при разработке seemap.ru:
                                1. Очень длительная компиляция. Если модулей много, то времени это займёт не мало.
                                2. Если необходимо внести небольшие изменения, компилировать приходится по новой.
                                3. Нет поддержки JPA аннотаций -> трудности с DAO

                                Kaluchi, всё что вы написали, можно сказать и про другие фреймворки, самое главное — руки ;)
                            +2
                            Залил бы видео куданить на Vimeo к примеру.
                              0
                              Подскажите, вот у вас на скринкасте в качестве шрифта достаточно размазанный (не в обиду будет сказано) Courier. А реально в Idea использовать Consolas с ClearType-оптимизацией?

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое