Java 在一个jUnit测试中运行多个Jetty服务器

Java 在一个jUnit测试中运行多个Jetty服务器,java,rest,maven,junit,jetty,Java,Rest,Maven,Junit,Jetty,我试图在jUnit测试中启动多个jetty服务器(每个服务器位于不同的端口),并为每个jetty服务器测试相同的rest端点 我能够成功地启动它们,但是每当我查询任何服务器上的端点时,无论我将请求发送到哪个端口,请求总是由单个jetty服务器接收 我已经确认jetty服务器都在不同的端口上启动,并且每个端口上都有一个侦听服务。无论请求实际发送到哪个端口,请求总是在同一端口上接收 不能在为同一路径服务的不同端口上启动多个jetty服务器吗? 以前有人能做到这一点吗 代码: //启动jettySer

我试图在jUnit测试中启动多个jetty服务器(每个服务器位于不同的端口),并为每个jetty服务器测试相同的rest端点

我能够成功地启动它们,但是每当我查询任何服务器上的端点时,无论我将请求发送到哪个端口,请求总是由单个jetty服务器接收

我已经确认jetty服务器都在不同的端口上启动,并且每个端口上都有一个侦听服务。无论请求实际发送到哪个端口,请求总是在同一端口上接收

不能在为同一路径服务的不同端口上启动多个jetty服务器吗? 以前有人能做到这一点吗

代码:

//启动jettyServer
jettyServer=新服务器();
handlerCollection=新handlerCollection(true);
ServerConnector ServerConnector=新的ServerConnector(jettyServer);
//该端口被传入该类。已验证此操作是否正确执行。
serverConnector.setPort(this.port);
setConnectors(新的ServerConnector[]{ServerConnector});
setHandler(handlerCollection);
jettyServer.start();
//已为应用程序正确配置配置,已验证
ServletContextHandler上下文=新的ServletContextHandler();
setContextPath(conf.getString(“pathForRestContext”);
org.glassfish.jersey.server.ResourceConfig config=new ResourceConfig();
config.packages(conf.getString(“packageForRest”);
ServletHolder ServletHolder=newservletholder(newservletcontainer(config));
addServlet(servletHolder,“/*”);
//将我们的处理程序附加到任何现有的处理程序
addHandler(newHandler);
试一试{
newHandler.start();
}捕获(例外e){
LOG.error(“启动新处理程序时出错:”,e);
投掷e;
}
//发送请求
URI=新的URIBuilder()
.setScheme(httpProtocol)
.setHost(server.getHostName())
.设置端口(portForJetty)
.setPath(restEndpoint)
.build();
//对所有请求使用相同的httpclient,但是使用单个客户端并不能解决问题。
Response-Response=httpClient.target(uri).request(MediaType.APPLICATION_JSON).get();
//responseType是一个自定义类,它是传入数据的预期数据类型。
response.readEntity(responseType)

是的,这是可能的,Jetty源代码本身定期这样做,以测试自己的代理实现(测试客户端->充当代理的测试服务器->代理客户端->充当请求端点的测试服务器)。也许,如果您提供一些代码来显示您正在做什么,那么它可以帮助我们为您制定一个直接的答案。添加相关的代码部分作为问题本身的编辑。谢谢@JoakimErdfelt@JoakimErdfelt您是否有机会查看代码?是的,这是可能的,Jetty源代码本身定期这样做,以测试自己的代理实现(测试客户端->充当代理的测试服务器->代理客户端->充当请求端点的测试服务器)。也许,如果您提供一些代码来显示您正在做什么,那么它可以帮助我们为您制定一个直接的答案。添加相关的代码部分作为问题本身的编辑。谢谢@JoakimErdfelt@JoakimErdfelt你有没有可能看一下密码?