Jetty内でstruts2をプログラムで構成しようとしていますが、多くの問題が発生しています。
これらは「ユニット」テスト用であるため、Springやその他の「DIフレームワーク」は使用したくありません。
これが私が持っているものです-(これは桟橋の周りに私のラッパーを使用しているので、メソッド呼び出しは桟橋のものと完全には一致しませんが、あなたは簡単にアイデアを得ることができます)
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を実装する必要があります。実装すると、getRuntimeConfigurationのMockConfigurationからUOEを取得します。これはおそらく間違ったパスだと思います...
誰かがこれをしたならば、どんなリードでも大いに感謝するでしょう。
ありがとう!!
ジェームズ