続・SAStrutsを組み込みサーバで動かしてみる

SAStrutsを組み込みサーバで動かしてみるの続き

取りあえずJettyで起動できて、すんなりリクエストも発行してレスポンスをテキストベースで検証するところまでは完成。

ただ気にくわない点が何個か。

  • アプリケーションディレクトリとして指定できるのが1つなので、classファイルのoutput folderをsrc/main/webapp/WEB-INF/classesに設定する必要がある。glassfishは複数できるけど、起動しない・・・
  • RunWithでSeasar2.classを指定すると、ActionCustomizerでエラーになる。どうもRunWithを付けるとS2ModuleConfigUtil.getModuleConfig()の内容がnullで返ってきてる。


public Server server;

@Before
public void 準備() throws Exception {
SelectChannelConnector connector = new SelectChannelConnector();
connector.setPort(9999);
server = new Server();
server.setConnectors(new Connector[] { connector });
WebAppContext web = new WebAppContext();
// 1箇所しか指定できない。
web.setWar("src/main/webapp");
web.setContextPath("/");
server.addHandler(web);
server.start();
}

@Test
public void index() throws Exception {
Request request = new Request(Method.GET, "http://localhost:9999/");

Client client = new Client(Protocol.HTTP);
Response response = client.handle(request);

Representation output = response.getEntity();
assertThat(output.getText(), is("Hello "));
}

@After
public void サーバ停止() throws Exception {
server.stop();
}