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!