Rust JNI can't find static method of JasperFillManager class

⚓ Rust    📅 2025-06-17    👤 surdeus    👁️ 5      

surdeus

Warning

This post was published 59 days ago. The information described in this article may have changed.

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