Перезагрузка изменений кода в Wicket

Я начал работать с Wicket. Когда я вношу изменения в шаблоны HTML, это сразу становится видно.

Но когда я вношу изменения в код, мне нужно перезапустить Jetty. Я работаю в режиме DEVELOPMENT (по крайней мере, так говорится в большом жирном предупреждении в журнале), и я установил ReloadingWicketFilter в соответствии с этим вопросом: Wicket - перезагрузка рабочего класса

Я предполагаю, что такое поведение вызвано тем, что я вношу все изменения в конструктор своих страниц, а Wicket не создает новую страницу при перезагрузке.

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


person Aaron Digulla    schedule 16.12.2010    source источник


Ответы (3)


Я использую mvn jetty: run и эту конфигурацию в pom.xml:

 <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>maven-jetty-plugin</artifactId>
            <version>${jetty.version}</version>
            <configuration>
                <!-- to be used in combination with netbeans compile on save feature -->
                <scanTargets>
                    <scanTarget>target/classes/</scanTarget>
                </scanTargets>
                <scanIntervalSeconds>1</scanIntervalSeconds>
            </configuration>
 </plugin>

И моя IDE (NetBeans) настроена так, что она компилируется при сохранении ... затем я могу переключиться на браузер и нажать перезагрузку ... и изменения были применены + причал был перезагружен

Или воспользуйтесь коммерческим приложением jrebel

person Karussell    schedule 19.12.2010
comment
Это выглядит многообещающе; он должен работать так же в Eclipse. - person Aaron Digulla; 20.12.2010
comment
Да, я так думаю. Он должен работать даже для всех («легких») java webframeworks. см. также мою ссылку на jrebel - person Karussell; 20.12.2010

Я думаю, что последний абзац можно решить, переопределив метод onInitialize () Component.

См. http://wicket.apache.org/apidocs/1.4/org/apache/wicket/Component.html#onInitialize%28%29.

С уважением,

Марек

person zeratul021    schedule 16.12.2010
comment
Что произойдет, если я добавлю новый компонент к тому же идентификатору несколько раз? - person Aaron Digulla; 17.12.2010

В IntelliJ запустите приложение Start через отладку. Когда вы вносите изменения в Java и компилируете, IntelliJ перезагружает класс через HotSpot. Изменения станут доступны в вашем приложении.

Вы, конечно, ограничены ограничением HotSpot только возможностью (например) создавать новые классы и изменять тела методов.

person amortaza    schedule 18.08.2014