アプリケーションをテストするために使用している Java HttpHandler があります。HttpHandler では、各 http 要求が個別のスレッドで処理され、HttpExchange に渡されます。しかし、現在実行中のテストに対して HttpHandler が正しい応答を返すことができるように、メイン スレッドとクラス (HttpServer と HttpHandler をセットアップするもの) からデータにアクセスする必要があります。このデータを HttpHandler クラスに渡したり、アクセスしたりする最良の方法は何ですか? HttpHandler#handle に別のパラメーターを追加することはできません。これは、HttpHandler によって定義され、HttpServer によって使用されるためです。また、メイン クラスの静的メソッドにはアクセスできません。また、メッセージを HttpHandler からメイン クラスにプッシュしてログに記録する必要もあります。
ありがとう
私のコードのサンプル:
class RequestHandler implements HttpHandler {
@Override
public void handle(HttpExchange exchange)
{
// do a bunch of stuff with the request that come in.
}
}
public class MainClass
{
public static void main(String[] args)
{
HttpServer server;
ExecutorService excutor;
InetSocketAddress addr = new InetSocketAddress(ipAdd, ipPort);
server = HttpServer.create(addr, 0);
server.createContext("/", new RequestHandler());
excutor = Executors.newCachedThreadPool();
server.setExecutor(excutor);
server.start();
// do a bunch of stuff that uses the server
}