Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 春季及;Docker:RMI主机名解析为0.0.0.0,而不是预期的IP地址_Java_Spring_Docker_Docker Compose_Rmi - Fatal编程技术网

Java 春季及;Docker:RMI主机名解析为0.0.0.0,而不是预期的IP地址

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和Spring程序与RMI服务相关联,但我找不到解决问题的方法

我试图通过一个
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
文件