Я пытаюсь настроить struts2 в Jetty программно, но у меня много проблем с этим.
Поскольку они предназначены для «модульных» тестов, я не хочу использовать Spring или любую другую «DI Framework».
вот что у меня есть - (это использование моей обертки вокруг причала, поэтому вызовы методов не совсем совпадают с вызовами Jetty, но вы можете легко понять это)
JspServlet servlet = new JspServlet();
server.mount("*.jsp", servlet)
.withInitParameter("trimSpaces", "true")
.withInitParameter("mappedFile", "true")
.withInitParameter("classdebuginfo", "true")
.withInitParameter("keepGenerated", "true")
.withInitParameter("development", "true")
.withInitParameter("scratchDir", "./target/scratch");
server.getContextHandler().setResourceBase("some-place/WebContent");
server.filter("/*", new FilterDispatcher())
server.start();
Это не удастся, жалуясь, что весна не настроена. Я экспериментировал с работой с подклассами FilterDispatcher, возвратом MockConfiguration и другими вещами, но на самом деле я не добился большого прогресса ...
private static class MyFilterDispatcher extends FilterDispatcher {
private MyFilterDispatcher(ActionMapper mapper) {
setActionMapper(mapper);
}
@Override
protected Dispatcher createDispatcher(FilterConfig filterConfig) {
Dispatcher dispatcher = super.createDispatcher(filterConfig);
ConfigurationManager configurationManager = new ConfigurationManager("filterdispatcher");
configurationManager.setConfiguration(new MockConfiguration());
dispatcher.setConfigurationManager(configurationManager);
return dispatcher;
}
}
Итак, вам нужно реализовать ActionMapper, который, если вы это сделаете, тогда вы получите UOE из вашей MockConfiguration для getRuntimeConfiguration - так что я думаю, что это, вероятно, неправильный путь ...
Если бы кто-то сделал это, был бы очень признателен за любые выводы.
Спасибо !!
Джеймс