Py4j Исключения при запуске приложения на сервере
Я создал приложение, использующее py4j, которое позволяет сохранять данные из python в базу данных SQL с помощью java-приложения, все работает так хорошо, когда я запускаю JVM как приложение, и на самом деле сохраняет данные. Но когда я запускаю код на сервере, это возвращает мне исключение. Поэтому я подумал, что, может быть, мой сервер (Wildfly) и Py4j используют один и тот же порт, поэтому я изменил порт py4j по умолчанию, как предложено в turotial, и именно так стороны Python выглядит после модификации:
from py4j.java_gateway import JavaGateway, GatewayParameters
gateway = JavaGateway(GatewayParameters(port=25335))
testBD = gateway.entry_point
DBin = gateway.jvm.com.packtpub.wflydevelopment.ch.Application(10,3) #calling constructor
testBD.create(DBin)
но я все еще имею исключение:
Traceback (most recent call last):
File "C:\Users\user\Desktop\test.py", line 4, in
DBin = gateway.jvm.com.packtpub.wflydevelopment.ch.Application(10,3)
File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\py4j-0.9-py3.5.egg\py4j\java_gateway.py", line 1185, in getattr
answer = self._gateway_client.send_command(
AttributeError: 'GatewayParameters' object has no attribute 'send_command'
Любые предложения будут очень признательны.
1 ответ
Я получил ответ от bartdag из вопроса на https://github.com/bartdag/py4j/issues/180, он указал, что указание экземпляра GatewayParameter для аргумента "gateway_parameters" работает.
# This produces the error
gateway = JavaGateway(GatewayParameters(address='192.168.99.100', port=25333))
Но добавление имени аргумента заставляет его работать:
# This solves it the error
gateway = JavaGateway(gateway_parameters=GatewayParameters(address='192.168.99.100', port=25333))