Rust JNI can't find static method of JasperFillManager class

⚓ rust    📅 2025-06-17    👤 surdeus    👁️ 3      

surdeus

Hello everyone.

I'm trying to call static method of class JasperFillManager
regarding documentation

it has signature

static JasperPrint fillReport(String sourceFileName, Map<String,Object> params, JRDataSource dataSource)

so I'm trying to call it with the next code

    let cls_jr_parameters = jenv.find_class("java/util/HashMap").unwrap();
    let obj_jr_parameters = jenv.new_object(cls_jr_parameters, "()V", &[]).unwrap();

    let cls_jr_empty_datasource = jenv
        .find_class("net/sf/jasperreports/engine/JREmptyDataSource")
        .unwrap();

    let obj_jr_empty_datasource = jenv
        .new_object(cls_jr_empty_datasource, "()V", &[])
        .unwrap();

    let cls_jasper_fill_manager = jenv
        .find_class("net/sf/jasperreports/engine/JasperFillManager")
        .unwrap();

    let str_jasper_file = jenv.new_string(jasper_file).unwrap();

    let obj_jasper_print = jenv
        .call_static_method(
            cls_jasper_fill_manager,
            "fillReport",
            "(Ljava/lang/String;Ljava/util/HashMap;Lnet/sf/jasperreports/engine/JRDataSource;)Lnet/sf/jasperreports/engine/JasperPrint;",
            &[
                JValue::Object(&str_jasper_file),
                JValue::Object(&obj_jr_parameters),
                JValue::Object(&obj_jr_empty_datasource),
            ],
        )
        .unwrap();

But got exception:

Exception in thread "Thread-0" java.lang.NoSuchMethodError: fillReport

Signature on rust side seems OK, any ideas what I'm doing wrong?

Thanks!

2 posts - 2 participants

Read full topic

🏷️ rust_feed