Следы jpype не появляются в воздушном потокеJAVA

Программисты JAVA общаются здесь
Anonymous
Следы jpype не появляются в воздушном потоке

Сообщение Anonymous »

Я использую Apache Airflow 2.10.5 для запуска задачи, реализованной в Java. Эта задача реализована с помощью Pythonoperator < /code>, который вызывает метод Java с помощью JPYPE.
Метод Java выполняет System.out.println < /code>.
К сожалению, эти трассы не появляются в журналах воздушного потока (ни в UI), хотя следов из Python Code не появляются. System.out.println (т.е. «Информация - код Java jpypetest.call вызван !!!!!!» ) можно увидеть в консоли авиакомпании!

Код: Выделить всё

from datetime import datetime, timedelta
from airflow.models.dag import DAG
from airflow.operators.python import PythonOperator
import jpype

def test_jpype():

print("Start JVM")
jpype.startJVM()

print("Load JPypeTest Java class")
JPypeTest = jpype.JClass("JPypeTest")
print("Instanciate JPypeTest Java class")
jpype_test = JPypeTest()
print("Invoke method 'call' of JPypeTest Java class")
jpype_test.call()

print("Shutdown JVM")
jpype.shutdownJVM()

print("Done.")

with DAG(
"test_jpype",
default_args={
"depends_on_past": False,
"email": ["airflow@example.com"],
"email_on_failure": False,
"email_on_retry": False,
"retries": 0,
},
description="Run a task that calls Java code with JPype",
schedule=None,
catchup=False,
tags=["test_jpype"],
) as dag:

task_test_jpype = PythonOperator(
task_id="test_jpype",
python_callable=test_jpype,
)

task_test_jpype
< /code>
И вот мой класс Java: < /p>
public class JPypeTest
{
public synchronized void call()
{
System.out.println("INFO - Java code JPypeTest.call invoked !!!!!!");
System.out.flush();
}
}
< /code>
Вот следы, найденные в файле журнала и пользовательского интерфейса: < /p>
[2025-04-01T13:44:19.734+0200] {logging_mixin.py:190} INFO - Task instance is in running state
[2025-04-01T13:44:19.735+0200] {logging_mixin.py:190} INFO -  Previous state of the Task instance: queued
[2025-04-01T13:44:19.735+0200] {logging_mixin.py:190} INFO - Current task name:test_jpype state:running start_date:2025-04-01 11:44:19.604270+00:00
[2025-04-01T13:44:19.735+0200] {logging_mixin.py:190} INFO - Dag name:test_jpype and current dag run status:running
[2025-04-01T13:44:19.735+0200] {taskinstance.py:732} INFO - ::endgroup::
[2025-04-01T13:44:19.735+0200] {logging_mixin.py:190} INFO - Start JVM
[2025-04-01T13:44:19.983+0200] {logging_mixin.py:190} INFO - Load JPypeTest Java class
[2025-04-01T13:44:19.983+0200] {logging_mixin.py:190} INFO - Instanciate JPypeTest Java class
[2025-04-01T13:44:19.984+0200] {logging_mixin.py:190} INFO - Invoke method 'call' of JPypeTest Java class
[2025-04-01T13:44:19.984+0200] {logging_mixin.py:190} INFO - Shutdown JVM
[2025-04-01T13:44:19.993+0200] {logging_mixin.py:190} INFO - Done.
[2025-04-01T13:44:19.993+0200] {python.py:240} INFO - Done. Returned value was: None
Большое спасибо.

Подробнее здесь: https://stackoverflow.com/questions/795 ... in-airflow

Вернуться в «JAVA»