2015-12-14 3 views
0

Я создал приложение, использующее py4j, что позволяет сохранять данные из python в базу данных SQL с помощью приложения java, все работает так хорошо, когда я запускаю JVM в качестве приложения, и это фактически сохраняет данные. Но когда я запускаю код на сервере, он возвращает мне исключение. Поэтому я подумал, что, возможно, мой сервер (Wildfly) и Py4j используют один и тот же порт, поэтому я изменил порт py4j по умолчанию, как предложил turotial, и это то, как стороны python выглядит как после изменения:Py4j Исключения при запуске приложения на сервере

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)) 

 Смежные вопросы

  • Нет связанных вопросов^_^