Jetty中Struts的编程配置

时间:2011-05-03 06:20:55

标签: java unit-testing struts2 integration-testing embedded-jetty

我正在尝试以编程方式在Jetty中配置struts2,但这样做很麻烦。

由于这些是'单元'测试,我不希望使用spring或任何其他'DI Framework'。

这就是我所拥有的 - (这是使用我在jetty周围的包装器,因此方法调用与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,如果你这样做,那么你从你的MockConfiguration获得一个UOE来获取getRuntimeConfiguration - 所以我认为这可能是错误的路径......

如果有人这样做了,我会非常感谢任何线索。

谢谢!

詹姆斯

0 个答案:

没有答案