gpt4 book ai didi

jakarta-ee - “Already connected”在docker容器中运行jersey应用程序时发生异常

转载 作者:行者123 更新时间:2023-12-02 18:24:10 24 4
gpt4 key购买 nike

我正在尝试将既是REST服务器又是客户端的jersey应用程序 jetty 化。在docker容器中运行时,该应用程序的行为似乎有所不同。

我可以对非 docker 服务(A)执行请求。当我尝试在两种情况下都使用JAX-RS客户端API时,在另一个未经过docker化的REST服务器(B)上执行请求时,会发生问题:

// common code - for contacting both A & B services
private static final Client client = ClientBuilder.newClient().register(JacksonFeature.class);

// inside the method called for each request
WebTarget target = client.target(location);
// for each query param : target = target.queryParam(..);
logger.info("This is logged successfully");
Response resp = target.request(MediaType.APPLICATION_JSON_TYPE).method(method, Entity.json(payloadBean));
logger.info("This is NOT logged for B service");

此时,我正在获取一个 javax.ws.rs.ProcessingException: Already connected ... Caused by: java.lang.IllegalStateException: Already connected
我使用单个Dockerfile在其中设置了oracle-java-8和(Tomcat或Jetty),其方式与在运行一切正常的docker之前在主机上所做的完全相同!

肯定没有涉及SSL。

在具有B服务的同一VM上运行我的应用程序会产生相同的行为。

服务A是 Jersey ,而服务B是django,但这与问题无关,因为它们都是REST服务。

关于如何调试这种情况的任何想法吗?

最佳答案

我为垃圾邮件感到抱歉,事实证明这是一个非常愚蠢的错误:

service A location was an IP address
service B location was an uknown dns name to the container

因此,将 --add-host B_fqdn:B_internal_IP传递给 docker run可以解决此问题

关于jakarta-ee - “Already connected”在docker容器中运行jersey应用程序时发生异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36622484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com