I was researching this a bit further and came across the following description for Jasper’s REPORT_CLASS_LOADER built-in report parameter.
REPORT_CLASS_LOADER
Resources such as images, fonts, and subreports can be referenced using their relative classpath location. By default, JasperReports uses the current thread’s context class loader to locate the resource. If that fails, it then falls back to the class loader that loads the library’s classes themselves. To extend the resource-lookup mechanism and give greater flexibility to the library, you can pass a custom-made class loader implementation as the value for the REPORT_CLASS_LOADER fill-time parameter. This would allow applications to load resources from repository locations that are not normally part of the overall application classpath.
Another option might be
REPORT_URL_HANDLER_FACTORY
With this in mind, it might make sense to implement a custom class loader that can look for resources in media:// (as an example) or in some other default location that is known to servoy.