これは、Tomcatでバルブを作成することで簡単に実行できます。
TomcatからValveBaseクラスを拡張するクラスを作成します。
内部のコードは次のようになります。
/**
* {@inheritDoc}
*/
@Override
public void invoke(final Request request, final Response response)
throws IOException, ServletException {
if (randomDelay != 0) {
long delay = minDelay + randomizer.nextInt(randomDelay);
try {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("sleeping for " + delay + " ms");
}
Thread.sleep(delay);
} catch (InterruptedException e) {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("someone wake me up : " + e.getMessage());
}
}
}
// let's continue !
getNext().invoke(request, response);
}
tomcat libディレクトリ(通常は{catalina.home} / lib)にドロップするjarファイルにコンパイルします。
最後に、server.xmlにバルブ宣言を追加します。
<Server ...>
<Service name="Catalina">
<Engine name="Catalina" defaultHost="localhost">
(...)
<Host name="localhost" ...>
<Valve className="tools.tomcat.RandomDelayValve" />
こんにちは