我有一个用于测试应用程序的 java HttpHandler。在 HttpHandler 中,每个 http 请求都在一个单独的线程中处理并通过 HttpExchange。但我需要从主线程和类(设置 HttpServer 和 HttpHandler 的那个)访问数据,以便 HttpHandler 可以为当前正在运行的测试发回正确的响应。让 HttpHandler 类传入或访问这些数据的最佳方法是什么?我无法向 HttpHandler#handle 添加另一个参数,因为它是由 HttpServer 使用的 HttpHandler 定义的,并且我无法访问主类中的任何静态方法。我还需要将消息从 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
}