py4j / py4j

Py4J enables Python programs to dynamically access arbitrary Java objects

Home Page:https://www.py4j.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

An error occurred while trying to connect to the Java server (127.0.0.1:25333)

lakshmiravalir opened this issue · comments

Hi,
I am trying to use Py4j in a code where java and python code deployed as one AWS lambda:
Java code:

package example;
import com.mypackage.RunClass; 
import py4j.GatewayServer;

public class CallClass{
    private RunClass runclass;

    public CallClass()
    {
        System.out.println("Starting CallClass");
         runclass = new RunClass();
    }

    public RunClass getRunClass(){
        return runclass;
    }

    public static void main(String[] args) {
        GatewayServer gatewayServer = new GatewayServer(new CallClass());
        gatewayServer.start();
        System.out.println("Gateway Server Started");
    }
}

Python lambda code:

def handle_request():
    input = "ravali1245"
    gateway = JavaGateway()                      
    java_object = gateway.entry_point.getRunClass()
    res = java_object.runMethod(input)
    print(res)

However I am getting below error:

{
  "errorMessage": "An error occurred while trying to connect to the Java server (127.0.0.1:25333)",
  "errorType": "Py4JNetworkError",
  "stackTrace": [
    "   java_object = gateway.entry_point.getRunClass()\n",
    "  File \"/var/task/py4j/java_gateway.py\", line 1284, in __call__\n    answer = self.gateway_client.send_command(command)\n",
    "  File \"/var/task/py4j/java_gateway.py\", line 1012, in send_command\n    connection = self._get_connection()\n",
    "  File \"/var/task/py4j/java_gateway.py\", line 960, in _get_connection\n    connection = self._create_connection()\n",
    "  File \"/var/task/py4j/java_gateway.py\", line 966, in _create_connection\n    connection.start()\n",
    "  File \"/var/task/py4j/java_gateway.py\", line 1108, in start\n    raise Py4JNetworkError(msg, e)\n"
  ]
}

JDK11
Python3
Py4J = 0.10.x
I am using default ports from Java and Python.
Is there anything I am missing here?

Would be helpful if you check just a regular socket server/client works in your env (e.g., https://github.com/ParadropLabs/python-socket-example)