I have this same issue, but not in a OSGi container: I'm running via the maven jetty plugin.
Only change was going from Jetty 9.0.6.v20130930 to 9.1.0.v2013111. I am definitely running on a JDK, Oracle 7u45. Adding -Dorg.apache.jasper.compiler.disablejsr199=false doesn't seem to work
either. Anyone else seen this?
(apologies for the wonky email thread, I just subscribed to this list).
PWC63449: Cannot find a java compiler for compilation
Here's the Jasper logic is to find a compiler it can use.
If you do nothing, and rely on defaults, then org.eclipse.jdt.internal.compiler.Compiler is used (if found)
But if you specify System.setProperty("org.apache.jasper.compiler.disablejsr199","false"), then the JDK built-in compiler is used (Jasper looks for "javax.tools.Tool" class),
Next, if neither of those are found, the "org.apache.tools.ant.taskdefs.Javac" is looked for.
Finally, if none are found, it throws that error.
I don't use OSGi myself, so I don't know what you need to do, but maybe this little insight into the process will help you address it directly.