Программная настройка Struts в Jetty - PullRequest
2 голосов
/ 03 мая 2011

Я пытаюсь настроить 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 - так что я думаю, что это, вероятно, неправильный путь ...

Если бы кто-то сделал это, был бы очень признателен за любые выводы.

Спасибо !!

Джеймс

...