使用wicket而没有任何与当前线程相关的请求

时间:2014-08-01 18:55:36

标签: request wicket

当没有与当前线程关联的请求时,是否有任何方法可以使用wicket。例如,我想定期发送邮件,我想使用wicket面板作为邮件模板。但是当我使用TimerTask时。这个帖子没有请求。

有没有办法在wicket中手动创建请求?或者更好的方法来处理这种情况?

我试试这个

final MockWebRequest request = new MockWebRequest(null);
final NullResponse response = NullResponse.getInstance();
RequestCycle rc = Application.get().createRequestCycle(request, response);
//do jobs
rc.detach()

但是在第3行它说没有应用程序附加到当前线程。

1 个答案:

答案 0 :(得分:0)

解决方案是使用WicketTester启动面板并获取所需信息。

Wickettester tester = new WicketTester(yourApplication);
tester.startComponentInPage(new EmailPanel()); 

您可以使用FormTester提交表单。

但这是TEST代码,因此不应在生产中使用。我不知道这对性能,安全性等的影响。最好从面板中提取所需的电子邮件模板信息,并使其在Wicket Panel和其他类中使用。