SuperDevMode не работает после обновления до gwt 2.6

Я обновил gwt 2.5.1 до 2.6, и с тех пор, как запускается режим суперразработчика, я вижу букмарклеты в myApp: 9876, модули загружаются, но нет кнопки «компилировать», когда я нажимаю «Режим разработки включен». Сервер кода загружается нормально, я вижу компилируемые перестановки.

Соответствующие части build.xml:

<property name="cpstring" value="${toString:gwt-codeserver}" />
    <target name="sdevmode" depends="build-dev">
        <java failonerror="true" fork="true" classname="com.google.gwt.dev.codeserver.CodeServer">
            <classpath>
                <pathelement path="${cpstring}" />
            </classpath>
            <jvmarg value="-Dorg.mortbay.util.FileResource.checkAliases=false" />
            <jvmarg value="-Xmx2g" />
            <jvmarg value="-XX:MaxPermSize=256M" />
            <jvmarg value="-XX:+UseParallelGC" />
            <arg value="-bindAddress" />
            <arg value="0.0.0.0" />
            <arg value="-src" />
            <arg value="${basedir}" />
            <arg value="-workDir" />
            <arg value="/tmp/test" />
            <arg value="path.to.dev" />
        </java>
</target>


     <!-- Super Dev Mode -->
<add-linker name="xsiframe" />
<set-property name="compiler.useSourceMaps" value="true" />
<set-configuration-property name="devModeRedirectEnabled" value="true" />
<set-configuration-property name="gwt.superdevmode" value="on" />
<set-configuration-property name="devModeUrlWhitelistRegexp" value=".*" />

Когда я проверяю div режима суперразработчика, я вижу элемент li с заголовком «Этот модуль не имеет режима суперразработчика». Исходные карты тоже не загружаются (ошибка сервера: 500). Любые идеи?

Кстати: режим суперразработчика, запущенный из intelliJ 13.1, перестал работать и с этим обновлением (я также обновил SDK до 2.6, это не имело значения). Я не менял конфигурацию:

vmoptions: -Xmx2g
devmode params: -bindAddress 0.0.0.0 -src path.to.my.src

Gwtmodule для загрузки точек в моем модуле dev и проверяется superdevmode. Исключение, которое я получаю;

java.lang.RuntimeException: not found: includeSourceMapUrl
    at com.google.gwt.dev.codeserver.Recompiler.overrideConfig(Recompiler.java:314)
    at com.google.gwt.dev.codeserver.Recompiler.loadModule(Recompiler.java:254)
    at com.google.gwt.dev.codeserver.Recompiler.compile(Recompiler.java:105)
    at com.google.gwt.dev.codeserver.ModuleState.<init>(ModuleState.java:58)
    at com.google.gwt.dev.codeserver.CodeServer.makeModules(CodeServer.java:120)
    at com.google.gwt.dev.codeserver.CodeServer.start(CodeServer.java:95)
    at com.google.gwt.dev.codeserver.CodeServer.main(CodeServer.java:71)
    at com.google.gwt.dev.codeserver.CodeServer.main(CodeServer.java:49)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

К сожалению, я не смог найти много о том, почему это происходит. Конфигурация IntelliJ superdevmode: введите здесь описание изображения


person monika    schedule 24.09.2014    source источник
comment
Вы пытались удалить свойства конфигурации? Думаю, они вам больше не нужны.   -  person El Hoss    schedule 24.09.2014
comment
Да, я сделал. Я много читал об этом, в 2.6 и выше вам не нужно включать superdevmode, он должен быть включен по умолчанию. не помогло к сожалению.   -  person monika    schedule 24.09.2014
comment
Вы также запустили сервер, который обслуживает статические файлы? Я использую Intellij, и мне нужно два сервера (сервер кода и обычный сервер разработки), чтобы запустить SDM.   -  person El Hoss    schedule 24.09.2014
comment
Я запускаю сервер (статические файлы, spring, tomcat и т. Д.) И сервер кода (вместе с режимом суперразработчика) с терминала как две отдельные задачи сборки. Поскольку обновление superdevmode в IntelliJ также не работает (см. обновление).   -  person monika    schedule 24.09.2014
comment
Вы пытались добавить: ‹arg value=-includeSourceMapUrl /› и ‹arg value=true /›?   -  person El Hoss    schedule 24.09.2014
comment
Нет, спасибо за подсказку! Сейчас я занят чем-то другим, но сегодня я попробую позже и дам вам знать, если это имело значение.   -  person monika    schedule 24.09.2014
comment
Можете ли вы опубликовать текущие конфигурации Intellij? У меня нет проблем с использованием GWT 2.6.1, SDM и Intellij   -  person El Hoss    schedule 24.09.2014
comment
Вы имеете в виду режим суперразработчика, работающий с конфигурацией или конфигурацией проекта?   -  person monika    schedule 24.09.2014
comment
Давайте начнем с рабочей конфигурации в режиме суперразработчика.   -  person El Hoss    schedule 24.09.2014
comment
Приносим извинения за поздний ответ. Выше я упомянул важные строки конфигурации запуска IntelliJ для superdevmode. Я могу прикрепить скриншот, я думаю.   -  person monika    schedule 25.09.2014


Ответы (1)


До этого докопался мой коллега. Основной проблемой было отключение superdevmode через https в версии 2.6, чего не было в более ранних версиях. Вот список настроек, позволяющих обеспечить работу superdevmode и исходных карт на GWT 2.6 через https:

  1. Определите пользовательский компоновщик, который включен на страницах ssl:

    открытый класс MyLinker расширяет CrossSiteIframeLinker {

    @Override
    protected String getJsDevModeRedirectHookPermitted(LinkerContext context) {
        return "$wnd.location.protocol == \"http:\" " +
                "|| $wnd.location.protocol == \"https:\" " +
                "|| $wnd.location.protocol == \"file:\"";
    } }
    
  2. Включите его в свой .xml

    <define-linker name="xsiframe" class="mypath.MyLinker" /> <add-linker name="xsiframe" />
    
  3. Включить исходные карты:

    <set-property name="compiler.useSourceMaps" value="true" /> <set-property name="compiler.useSymbolMaps" value="true"/>

  4. Добавьте регулярное выражение белого списка в ваш dev.xml, если вы не работаете на локальном хосте:

    <set-configuration-property name="urlWhitelistingRegexp" value="http://(.*\.myDesktop\.myDomain|localhost)(:\d+)?/.*" />

  5. Убедитесь, что ваш gwt codeserver находится в пути.

Публикация ответа в надежде, что когда-нибудь кто-то может найти его полезным.

person monika    schedule 01.10.2014