【问题标题】:Is it possible to call Java methods on a different server from Python using Py4J是否可以使用 Py4J 在与 Python 不同的服务器上调用 Java 方法
【发布时间】:2020-07-23 09:02:02
【问题描述】:

我正在使用 py4j 进行 python 和 java 之间的通信。
目前,java进程和python在同一个服务器。
我想知道是否可以将这两个分离到不同的服务器中,而无需对当前使用 Py4J 的方法进行太大更改。
如果可能,有人可以帮助我直接访问相关文档或显示代码 sn-ps 以了解如何执行此操作吗?

【问题讨论】:

    标签: java python py4j


    【解决方案1】:

    我不知道你还在寻找答案,但有人可能会觉得这很有帮助:

    当您通过调用构造函数创建网关时,

    GatewayServer gatewayServer = new GatewayServer(new YourEntryPoint(), gatewayPort);
    

    那么您的网关将默认 java IP 地址设置为127.0.0.1 (localhost)。 将 IP 地址设置为localhost 的网关将仅响应来自本地主机(同一台机器)的请求。

    您可以使用 IP 0.0.0.0 使其使用您机器的所有 IP 或指定您机器的一个 IP。

    指定 Java IP 的一种方法是使用 GatewayServer.GatewayServerBuilder

    GatewayServer.GatewayServerBuilder builder = new GatewayServer.GatewayServerBuilder();
    GatewayServer gatewayServer = builder
           .entryPoint(new YourEntryPoint())
           .javaPort(gatewayPort)
           .javaAddress(InetAddress.getByName("0.0.0.0"))  // .getByName throws UnknownHostException
           .build();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-03
      • 1970-01-01
      • 2011-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多