In continuation to this topic, we would like to let you know that the real cause of this issue was jar within a a jar:
Analysis: When we build our SpringBoot application, it creates an executable fat jar where the GroupDocs-conversion jar resides inside SpringBoot fat jar as a dependency. While third party Service Provider registrations during document conversion, the Java API encounters a IllegalArguentException as it was unable to read the manifest file entries and get the VendorName value from manifest to set in API.
Solution Approach: We tried different approaches for Manifest entries however hard luck. The issue has a probable solution if the jar is provided as external dependencies which works well while using IDEs, however within the same OS environment if the fat jar is executed (say with command “java -jar <jar_name>”) the issue can be replicated.
As a solution SpringBoot’s Maven plugin provides a tag during fat jar creation where the provided jar’s can be marked for unpacking during runtime. This is shown as below:
image.png (2.5 KB)
The main issue at this point is Spring Boot unpacks it in OS temporary directory. So, in different deployment environments, this raise a risk of temp file getting deleted at any point of time by any unknown separate scheduled running script.
It would be great if we can have a solution to this case. Can’t we use the groupdocs jar within the executable jar without unpack?
Please let us know for more information.