Java 春季及;Docker:RMI主机名解析为0.0.0.0,而不是预期的IP地址
我目前正在从事一个项目,该项目将Docker和Spring程序与RMI服务相关联,但我找不到解决问题的方法 我试图通过一个Java 春季及;Docker:RMI主机名解析为0.0.0.0,而不是预期的IP地址,java,spring,docker,docker-compose,rmi,Java,Spring,Docker,Docker Compose,Rmi,我目前正在从事一个项目,该项目将Docker和Spring程序与RMI服务相关联,但我找不到解决问题的方法 我试图通过一个docker compose.yml文件将两个Spring程序部署到两个不同的容器中。第一个在地址0.0.0.0(所有内容)和特定端口(也在Docker文件中公开)上公开RMI接口。第二个是使用远程接口的RMI客户端 为了访问从另一个容器公开RMI服务的容器,我通过Compose文件中的links参数给它一个别名,如下所示: services: rmi-service:
docker compose.yml
文件将两个Spring程序部署到两个不同的容器中。第一个在地址0.0.0.0
(所有内容)和特定端口(也在Docker文件中公开)上公开RMI接口。第二个是使用远程接口的RMI客户端
为了访问从另一个容器公开RMI服务的容器,我通过Compose文件中的links
参数给它一个别名,如下所示:
services:
rmi-service:
...
rmi-client:
...
links:
- rmi-service:rmihost
当我用docker compose up-d
启动容器时,如果我从第二个容器执行命令ping rmihost
,它会工作得很好。但是,当我尝试启动Spring RMI客户端时,出现以下错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'my.rmi.client' defined in class path resource [META-INF/rmi-client-spring.xml]: Invocation of init method failed; nested exception is
org.springframework.remoting.RemoteConnectFailureException: Could not connect to remote service [rmi://rmihost:11199/businessService]; nested exception is
java.rmi.ConnectException: Connection refused to host: 0.0.0.0
我不明白为什么它不能将主机名转换为正确的IP地址,而我可以ping
it。我尝试在/etc/hosts
文件中添加rmihost
,但它没有改变任何东西,总是给出相同的错误
在此问题上的任何帮助或建议都将不胜感激!提前谢谢
编辑这是我的docker compose.yml
文件:
version: '2.1'
services:
rmi-service:
restart: always
tty: true
build: ./rmi-service/
image: rmi-service
container_name: rmi-service
expose:
- "11199"
rmi-client:
restart: always
tty: true
build: ./rmi-client/
image: rmi-client
container_name: rmi-client
depends_on:
- rmi-service
links:
- rmi-service:rmihost
你能把你的全部文件都寄出去吗?这使得查找可能的问题变得更容易。添加了
docker compose.yml
文件