Подтвердить что ты не робот

Начало работы с SuperDevMode

Я просто хочу запустить простое приложение, используя superDevMode, чтобы узнать его преимущества. CodeServer запускается успешно, но он жалуется, что в пользовательском интерфейсе нет модулей gwt. Я выполнил следующие шаги.

  • Я начал с кода GWT Default, который будет создан при создании нового проекта. Затем я преобразовал его в проект Maven.
  • Затем я изменил свой файл gwt.xml, чтобы добавить компоновщик. Вот копия моего gwt.xml

    <module rename-to='superdevmode'>
    <inherits name='com.google.gwt.user.User' />
    <inherits name='com.google.gwt.user.theme.clean.Clean' />
    <entry-point class='superDevMode.client.SuperDevMode' />
    <add-linker name="xsiframe" />
    <set-configuration-property name="devModeRedirectEnabled"
    value="true" />
    </module>
    
  • Я добавил баннер codeerver и установил правильный путь к классам.

Codeserver успешно запускается.

   The code server is ready.
   Next, visit: http://localhost:9876/

Когда я запускаю пользовательский интерфейс, я получаю следующее enter image description here

Но когда я нажимаю на Dev Mode On, я получаю следующее

enter image description here

Я не знаю, что я делаю неправильно. Моя запись POM выглядит так.

              <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>superDevMode</groupId>
<artifactId>superDevMode</artifactId>
<version>0.0.1-SNAPSHOT</version>
             </project>

Исправьте меня, если я ошибаюсь.

4b9b3361

Ответ 1

Обновление: v2.6 выглядит так, что у него будет лучшая программа запуска для супердева (см. под супердемодом в http://www.gwtproject.org/release-notes.html#Release_Notes_2_6_0_RC1) 2.6 будет выпущен в любой день. Я использую RC3, и это кажется прекрасным. Подробнее здесь:


Хотя я ценю детали о том, как работает SuperDevMode в статье Томаса, действительно необходимо пошаговое руководство по устранению проблем.

Вот шаг за шагом. Есть так много мест, чтобы пойти не так, и страница режима SuperDev не очень специфична. Надеюсь, это дает понять:

  • Настройте файл .gwt.xml модуля с дополнительными строками (вы должны поместить это в нижней части своего определения модуля, т.е. непосредственно перед </module>):
<add-linker name="xsiframe"/>
<set-configuration-property name="devModeRedirectEnabled" value="true"/>
<!-- enable source maps -->
<set-property name="compiler.useSourceMaps" value="true" />
  1. Запустите стандартный процесс компиляции GWT - в Eclipse это "GWT Compile Project..." - это то, что вы обычно делаете при развертывании кода GWT. Без сомнения, у вас есть команда maven или ant, которая также делает это.

  2. Запустите обычный веб-сервер, который вы обычно используете при разработке кода GWT. Например, тот, с которым вы использовали обычный DevMode. Я буду называть это localhost: 8888 - я собираюсь предположить, что вы обычно запускаете index.html, поэтому http://localhost:8888/index.html показывает ваше приложение GWT. (у вас, вероятно, есть ?gwt.codesvr=127.0.0.1:9997 в этом URL-адресе)

  3. Запустите сервер SuperDevMode (см. нижнюю часть этого ответа для двух методов). Теперь у вас есть два веб-сервера - на разных портах. Итак, скажем, SuperDevMode работает на localhost:1234. В нижней части этого ответа я опубликовал несколько способов запуска SuperDevMode.

  4. Направьте свой браузер на сервер SuperDevMode, поэтому http://localhost:1234. Следуйте инструкциям и скопируйте два ярлыка на адресную строку.

  5. Теперь укажите ваш браузер на обычный веб-сервер, http://localhost:8888/index.html - не добавить ?gwt.codesvr=127.0.0.1:9997 в URL-адрес, который предназначен только для NotSuper DevMode. (т.е. обычный DevMode)

  6. Нажмите ссылку быстрого доступа "DevMode On", которую вы скопировали на шаге 5. Он должен попросить вас выбрать модуль для компиляции, нажмите кнопку "Скомпилировать".

  7. Если вам нужны исходные коды (см. исходный код java в браузере Chrome script), вы должны включить его в Chrome. В моей версии Chrome (Ubuntu) в нижней правой части консоли Chrome есть небольшое устройство (Inspect Element, затем посмотрите в нижнем правом углу окна браузера). Нажмите это и найдите "Включить исходные карты". Перезагрузите страницу, и теперь она должна показать вам исходные коды.


Два способа запуска режима супер-dev:

В командной строке

java -classpath $GWT_HOME/gwt-codeserver.jar:$GWT_HOME/gwt-dev.jar:$GWT_HOME/gwt-user.jar:app:./lib/*  com.google.gwt.dev.codeserver.CodeServer \
  -bindAddress 0.0.0.0 -port 1234 -src src -workDir work com.foo.MyModule

Из Eclipse Laucher

В Eclipse создайте новую программу запуска приложений Java ( не для запуска веб-приложений!) со следующей конфигурацией:

Основной класс:

com.google.gwt.dev.codeserver.CodeServer

Аргументы программы:

-src src -workDir ${workspace_loc:MyProject}/codeserver -port 1234 com.foo.MyModule

-workDir является необязательным

Аргументы виртуальной машины (это может потребоваться в зависимости от размера вашего проекта. Если кнопка суперкоммутатора "Скомпилировать" (в браузере) исчезает сразу же после нажатия и ничего не происходит, это может сбой из-за недостаточной памяти)

-Xmx1024m -Xms512m

Путь к классам: добавить gwt-codeserver.jar, gwt-dev.jar и gwt-user.jar в путь класса запуска (эти баны находятся в каталоге установки GWT SDK).

Ответ 2

Я использовал несколько иной подход. Я начал с существующего Hello project, а затем настроил его для работы в режиме Super Dev.

A. Построить и развернуть войну для проекта hello в tomcat.

B. Добавьте цель в проект build.xml Hello.

<target name="codeserver" depends="javac" description="Run Code Server mode">
    <java failonerror="true" fork="true" classname="com.google.gwt.dev.codeserver.CodeServer">
        <classpath>
            <pathelement location="src"/>
            <path refid="project.class.path"/>
            <pathelement location="../../gwt-codeserver.jar" />
            <pathelement location="../../validation-api-1.0.0.GA.jar" />
            <pathelement location="../../validation-api-1.0.0.GA-sources.jar" />
        </classpath>
        <jvmarg value="-Xmx1024M"/>
        <arg value="-bindAddress"/>
        <arg value="0.0.0.0"/>
        <arg line="-port"/>
        <arg value="9876"/>
        <arg value="-workDir"/>
        <arg value="workDir"/>
        <arg line="-src"/>
        <arg value="src"/>
        <arg value="com.google.gwt.sample.hello.Hello"/>
    </java>
</target>

C. Запустите сервер кода с помощью ant codeserver из командной строки.

D. Запустить браузер и перейти к http://localhost:9876/ Создать закладки

E. Запустите Chrome Dev Tools (F12) и включите SourceMaps.

F. Запустить браузер и перейти к http://localhost:8080/Hello

G. Нажмите на закладку "Dev Mode ON", когда вы находитесь на странице http://localhost:8080/Hello

H. Нажмите кнопку "Скомпилировать", чтобы указать серверу кода загрузить исходный код gwt в браузер в качестве исходных карт.

Я.. Убирайте java файлы и их можно увидеть на вкладке источника консоли разработки Chrome.

J. Найти Hello.java. Нажмите на номер строки, чтобы установить точку отладки @ Window.alert("Hello, AJAX");.

K. Нажмите "Click Me" в Hello World. Код останавливается в вашей точке отладки в java файле в Chrome!!!!!!!! Hurray.

Ссылка со скриншотами - http://geekbybit.blogspot.in/2013/03/diy-working-with-gwt-codeserver-tomcat.html

enter image description here

Ответ 3

есть действительно хорошее объяснение того, как это работает здесь: http://blog.ltgt.net/how-does-gwts-super-dev-mode-work/

вам нужно перетащить буклеты в свой браузер. Затем запустите свое приложение, как обычно. Откройте приложение в браузере без части "? Gwt.codesvr = 127.0.0.1: 9997". Теперь вы можете использовать буклеты для запуска SuperDevMode.

Надеюсь, что это поможет.

Ответ 4

В многомодульном проекте maven gwt вам нужно добавить исходные местоположения (базовый проект и модуль) в Run Configuration:

-src src/main/java/ -src ${workspace_loc:MyNewModule}/src/main/java/ com.foo.MyModule