We use ear deployment with several wars inside it.
Our report subsystem compiles jasper xml (*.jrxml) into *.jasper format on demand.
As result we have:
We suppose compiled subreport should be loaded by next code:
{code}
classLoader = Thread.currentThread().getContextClassLoader();
if (classLoader != null) {
url = classLoader.getResource(location);
}
if (url == null) {
classLoader = clazz.getClassLoader();
if (classLoader == null) {
url = clazz.getResource("/" + location);
} else {
url = classLoader.getResource(location);
}
}{code}
But actually it isn't.
At the same time corresponding *.jrxml files can be loaded using above code snippet.
Also we see that Thread.currentThread().getContextClassLoader() returns org.jboss.web.tomcat.service.WebCtxLoader$ENCLoader that has
file:/home/ihrytsyuk/work/p/jboss/server/default/tmp/3j011-p7kxse-gguq8ayi-1-gguq941n-9r/p.war/WEB-INF/classes (a dir where *.jasper are located) among it's urllist.
Could onyone suggest us why mentioned ClassLoaders cannot load compiled JasperReport?
Any ideas how to resolve it?
Thank you in advance,
Ivan