如何解决当多个服务器正在运行时,使用模拟服务器
我正在尝试使用模拟服务器转发数据包。有几种服务正在运行: 127.0.0.1:9000上的服务器1 127.0.0.1:1080上的服务器2(使用模拟服务器) 127.0.0.1:1090上的服务器3(使用模拟服务器)
此想法是将服务器3上的所有请求转发到具有已修改标头的服务器1。但是,模拟服务器检测到期望值匹配后,始终会得到服务器1连接拒绝错误。有没有人看过或知道如何解决?
模拟服务器参考:https://5-1.mock-server.com/mock_server/getting_started.html 我用来模拟服务器3的代码
public static void start() {
startClientAndServer(PORT);
createExpectation();
}
private static void createExpectation() {
new MockServerClient(HOST,PORT)
.when(
request()
.withPath("/somepath")
)
.forward(
forwardOverriddenRequest(
request()
.withPath("/some-path")
.withHeader("header1","value 1")
.withSocketAddress("127.0.0.1",9000,SocketAddress.Scheme.HTTP)
)
);
}
我看到的错误:
DEBUG 18:18:13.476 [dw-74] / CDF6E1D6ABC0926AD437B88C7411C257 / 16E5996B8FE00C329A7393273033CD50 oejutil.thread.QueuedThreadPool:跑CEP:SocketChannelEndPoint @ 377a4c7f {l = / 127.0.0.1:0.19000 OPEN,fill = FI,flush =-,to = 0/30000} {io = 1/1,kio = 1,kro = 1}-> HttpConnection @ 77ba1a5a [p = HttpParser {s = START,0 of -1} ,g = HttpGenerator @ 744e43f9 {s = START}] => HttpChannelOverHttp @ 608c631c {s = HttpChannelState @ 33b00031 {s = IDLE rs = Blocking os = OPEN is = IDLE awp = false se = false i = true al = 0}, r = 1,c = false / false,a = IDLE,uri = null,age = 0}:runFillable:InstrumentedQueuedThreadPool [dw] @ 2c3c8bbb {STARTED,8 http://127.0.0.1:1090/loadBalancers DEBUG 18:18:13.532 [main] c.o.p.commons.client.BaseRestClient:生成的下游请求ID ECD767D0F709085D73125AEEB3AEF9C9 / D0E39E7AFC1A06EB838EF0C901CC4A4D INFO 18:18:13.806 [main] copiasRequestSignerImpl:将要签名的字符串:日期:2020年8月25日,星期二01:18:13 UTC \ n(请求目标):post / loadBalancers \ ncontent-length:4737 \ ncontent -类型:application / json \ nx-content-sha256:Xk + p6sOdASfyr1ZvQNei / FZ6ExqhKQhAwc08mR67dgA = \ naccept:application / json \ nopc-request-id:ECD767D0F709085D73125AEEB3AEF9C9 / D0E39E7A7 DEBUG 18:18:13.852 [main] o.a.h.c.protocol.RequestAddCookies:选择的CookieSpec:默认 DEBUG 18:18:13.852 [main] o.a.h.c.protocol.RequestAuthCache:未在上下文中设置身份验证缓存 调试18:18:13.854 [main] o.a.h.i.c.PoolingHttpClientConnectionManager:连接请求:[route:{}-> http://127.0.0.1:1090] [总计保持活动状态:0;分配的路线:0(共2);已分配的总数:20个中的0个] 调试18:18:13.856 [main] o.a.h.i.c.PoolingHttpClientConnectionManager:租借的连接:[id:1] [路由:{}-> http://127.0.0.1:1090] [总计保持活动状态:0;分配的路线:2之1;分配总数:20个中的1个] 调试18:18:13.856 [main] o.a.h.impl.execchain.MainClientExec:打开连接{}-> http://127.0.0.1:1090 调试18:18:13.856 [main] o.a.h.i.c.DefaultHttpClientConnectionOperator:连接到/127.0.0.1:1090 调试18:18:13.857 [main] o.a.h.i.c.DefaultHttpClientConnectionOperator:建立连接127.0.0.1:61811127.0.0.1:1090 DEBUG 18:18:13.857 [main] o.a.h.impl.execchain.MainClientExec:执行请求POST / loadBalancers HTTP / 1.1 DEBUG 18:18:13.857 [main] o.a.h.impl.execchain.MainClientExec:代理身份验证状态:未挑战 错误18:18:13.860 [MockServer-EventLog36] o.mockserver.log.MockServerEventLog:Web套接字服务器捕获到异常 ! java.lang.NoSuchMethodError:org.apache.commons.lang3.builder.EqualsBuilder.setExcludeFields([Ljava / lang / String;)Lorg / apache / commons / lang3 / builder / EqualsBuilder; !在org.mockserver.model.ObjectWithReflectiveEqualsHashCodeToString.equals(ObjectWithReflectiveEqualsHashCodeToString.java:34)〜[mockserver-core-5.11.1.jar:5.11.1] !在java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:940)〜[na:1.8.0_201] !在org.mockserver.netty.unification.PortUnificationHandler.getLocalAddresses(PortUnificationHandler.java:306)〜[mockserver-netty-5.11.1.jar:5.11.1] !在org.mockserver.netty.unification.PortUnificationHandler.switchToHttp(PortUnificationHandler.java:257)〜[mockserver-netty-5.11.1.jar:5.11.1] !在org.mockserver.netty.unification.PortUnificationHandler.decode(PortUnificationHandler.java:138)〜[mockserver-netty-5.11.1.jar:5.11.1] !在io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:500)〜[netty-codec-4.1.37.Final.jar:4.1.37.Final] !在io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)〜[netty-codec-4.1.37.Final.jar:4.1.37.Final] !在io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)〜[netty-codec-4.1.37.Final.jar:4.1.37.Final] !在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)〜[netty-transport-4.1.37.Final.jar:4.1.37.Final] !在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)〜[netty-transport-4.1.37.Final.jar:4.1.37.Final] !在io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)〜[netty-transport-4.1.37.Final.jar:4.1.37.Final] !在io.netty.channel.DefaultChannelPipeline $ HeadContext.channelRead(DefaultChannelPipeline.java:1408)〜[netty-transport-4.1.37.Final.jar:4.1.37.Final] !在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)〜[netty-transport-4.1.37.Final.jar:4.1.37.Final] !在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)〜[netty-transport-4.1.37.Final.jar:4.1.37.Final] !在io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)〜[netty-transport-4.1.37.Final.jar:4.1.37.Final] !在io.netty.channel.nio.AbstractNioByteChannel $ NioByteUnsafe.read(AbstractNioByteChannel.java:163)〜[netty-transport-4.1.37.Final.jar:4.1.37.Final] !在io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)〜[netty-transport-4.1.37.Final.jar:4.1.37.Final] !在io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)〜[netty-transport-4.1.37.Final.jar:4.1.37.Final] !在io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)〜[netty-transport-4.1.37.Final.jar:4.1.37.Final] !在io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)〜[netty-transport-4.1.37.Final.jar:4.1.37.Final] !在io.netty.util.concurrent.SingleThreadEventExecutor $ 5.run(SingleThreadEventExecutor.java:918)〜[netty-common-4.1.37.Final.jar:4.1.37.Final] !在io.netty.util.internal.ThreadExecutorMap $ 2.run(ThreadExecutorMap.java:74)〜[netty-common-4.1.37.Final.jar:4.1.37.Final]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。