当前位置: 首页 > 知识库问答 >
问题:

连接到另一个本地主机URL时引发404异常的Dockerized tomcat webapp

伯庆
2023-03-14

我有一个在Tomcat8.5中运行的应用程序在docker容器中。Java版本是JDK8。应用程序使用的属性文件指向另一个正在运行的服务。在本例中,我的主机上运行该服务,并且属性设置为指向我的localhost:

my.external.service.url=http://localhost:8080/my-api-service

当我的tomcat应用程序也运行在主机上时,这工作很好。但是当我的应用程序在docker容器中运行时,当它试图调用这个服务时,我得到一个404错误。

我尝试切换URL以指向我的计算机名:

my.external.service.url=http://my.pc.url.com:8080/my-api-service

但是在本例中,即使tomcat应用程序运行在主机上而不是docker容器上仍然可以工作,但我得到了一个不同的错误:

java.net.UnknownHostException: my.pc.url.com: No address associated with hostname

如何配置容器,使其工作?

共有1个答案

娄振
2023-03-14

Docker网络是一个潜在的复杂问题。基本上,如果运行两个单独的容器,它们将不会“看到”彼此。您可以让它们都在主机上公开端口,然后通过这种方式进行“连接”,但您最好使用docker的网络功能来确保容器之间的通信。

举一个简单的例子--比如说两个运行tomcats的容器,您希望彼此对话--您最好通过docker-compose运行它们,这样它们就在同一个网络中。

internet上有许多资源可以解释docker网络的进一步细节,如果您希望探索的话。

 类似资料:
  • 问题内容: 由于wamp服务器,我试图将我的android应用程序连接到本地主机url,但它不起作用。我的目标是获取json数据并解析这些数据。对于我的测试,我使用的是设备而不是模拟器,并且使用AndroidManifest.xml中的权限: 我的网址看起来像这样: 我试过了 : 但是到目前为止,它从未起作用: 然后我尝试了在互联网上找到的json url测试:http : //headers.j

  • 试图连接一个简单的JMX监控。托管应用程序和监控工具位于同一台服务器上。当试图连接一个错误 00:30:55610致命http-8080-6 SiteListener:makeJmxConnection:99-java.io。IOException:检索RMIServer存根失败:javax.naming。ServiceUnavailableException[根异常为java.rmi.Conne

  • 我试图连接我的Android应用程序到本地主机网址感谢wamp服务器,但它不工作。我在这里的目标是获取json数据并解析这些数据。对于我的测试,我使用的设备不是仿真器,我使用权限在Androidanifest.xml: 我的url如下所示: 我试过: 但迄今为止,它从未奏效: 然后我尝试了一个在互联网上找到的json url测试:http://headers.jsontest.com/ 它工作得非

  • 我正在运行Codeception来对付一个Laravel Homestead流浪汉实例。PHP版本5.5。12,拉威尔4.*。Codeception版本2.0。0 我可以使用localhost:8000127.0通过Chrome访问该网站。0.1:8000,或mysite。app:8000。该网站还远程部署在一台AWS服务器上,该服务器没有域名,但有一个公共IP地址,通过Chrome查看时可以正常

  • 问题内容: 我正在尝试使用PyMySQL连接到本地主机上的MySQL: 但是(在Python 2.7和Python 3.2上)我得到了错误: socket.error:[Errno 111]连接被拒绝 pymysql.err.OperationalError:(2003年,“无法连接到’localhost’(111)上的MySQL服务器”) 我确定mysqld正在运行,因为我可以使用command

  • 问题内容: 嗯,连接期间没有错误,但是当尝试保存一些模型/集合时,它会运行一段时间,然后抛出此错误。顺便说一句,我还有另一个连接到同一mongodb服务器的节点进程。非常感谢您的帮助。 问题答案: