Calling Java Class using Dataweave & Observing different behavior of Java Static Method on Linux and Windows OS

Author: Abhishek Bathwal

Recently I worked on an application to read barcode images from URL or Base64 encoded payload and provide the result.

For that I have used a jar from Dynamsoft and created a java package importing the classes of barcode reader from dynamsoft and creating a class for ImageReader.

Below is the structure of the application and the Java package:

I wrote two static methods one for reading the normal URL of the image and another for reading the Base64 encoded payload.

URL:

Base64:

Then, I wrote the below code to call the ImageReader class from dataweave:

When Executed locally on Windows OS it worked fine and returned expected results:

But when the same code is executed by deploying it over the server, then I was unable to find the static method for Base64 and returned with error:

So to overcome the error I changed the java code. In place of using multiple static methods, I used if else condition. This time I changed the package name and introduced a new variable in the static method to validate the if else condition. 0 – For Base64 and 1 – For URL.

New Code in dataweave:

New Java Code:

URL:

Base64:

The development of the applications signifies that a java class can be called using dataweave and the Static method behaves differently on Linux and Windows OS.

Happy Learning!

We use cookies on this site to enhance your user experience. For a complete overview of how we use cookies, please see our privacy policy.