Wicket中的代码更改重新加载

时间:2010-12-16 08:29:15

标签: wicket classloader reload

我已经开始使用Wicket了。当我对HTML模板进行更改时,会立即显示。

但是当我对代码进行更改时,我需要重新启动Jetty。我正在以DEVELOPMENT模式运行(至少这是日志中的大胖警告所说的)我按照这个问题安装了ReloadingWicketFilterWicket - runtime class reloading

我的猜测是这种行为是因为我在我的网页的构造函数中进行了所有更改,而Wicket在重新加载时没有创建新页面。

我浏览了Wicket示例,但没有示例显示如何构建Wicket页面,而不在构造函数中添加所有组件或如何告诉Wicket为每个请求创建新页面或者如何告诉Wicket创建一个新页面。

3 个答案:

答案 0 :(得分:3)

我正在使用mvn jetty:在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)配置为在保存时编译...然后我可以更改切换到浏览器并点击重新加载...并且应用了更改+ jetty重新加载

或使用商业应用jrebel

答案 1 :(得分:0)

我认为最后一段可以通过覆盖Component的onInitialize()方法来解决。

请参阅http://wicket.apache.org/apidocs/1.4/org/apache/wicket/Component.html#onInitialize()

此致

Marek

答案 2 :(得分:0)

在IntelliJ中,通过调试运行“启动”应用程序。当您对Java进行更改并进行编译时,IntelliJ会通过HotSpot重新加载该类。这些更改可在您的应用程序中使用。

您当然仅限于HotSpot的限制,只能(例如)创建新类和更改方法主体。