05.29
Many times after performing the deployment JRun is seen to report the Compiler not found error and the funny things is the issue sometimes mixed with Memory and path problems
jrunx.compiler.JavaCompiler$NoCompilerFoundException: Could not invoke Java compiler, please make sure jikesw is in /app/jrun4/bin or put a JDK bin directory in your path.
at jrunx.compiler.JavaCompiler.outProcessCompile(JavaCompiler.java:467)
at jrunx.compiler.JavaCompiler.compile(JavaCompiler.java:132)
at jrunx.compiler.JavaCompiler.compile(JavaCompiler.java:100)
at jrun.jsp.Translator.compilePage(Translator.java:176)
at jrun.jsp.Translator.translate(Translator.java:254)
at jrun.jsp.Translator.translate(Translator.java:101)
at jrun.jsp.JSPEngine.translateJSP(JSPEngine.java:693)
at jrun.jsp.JSPServlet.translate(JSPServlet.java:125)
at jrun.jsp.JSPServlet.service(JSPServlet.java:113)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
at com.ineda.v2.servlet.IPFilter.doFilter(IPFilter.java:55)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
at jrunx.util.DynamicClassLoaderFilter.doFilter(DynamicClassLoaderFilter.java:48)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
at jrun.servlet.FilterChain.service(FilterChain.java:101)
at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)
at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
at jrun.servlet.JRunRequestDispatcher.invokeNext(JRunRequestDispatcher.java:534)
at jrun.servlet.JRunRequestDispatcher.forwardInvoke(JRunRequestDispatcher.java:503)
at jrun.servlet.JRunRequestDispatcher.forward(JRunRequestDispatcher.java:177)
at jrun.servlet.file.FileServlet.service(FileServlet.java:316)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
at jrunx.util.DynamicClassLoaderFilter.doFilter(DynamicClassLoaderFilter.java:48)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
at jrun.servlet.FilterChain.service(FilterChain.java:101)
at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)
at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:259)
at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:541)
at jrun.servlet.http.WebService.invokeRunnable(WebService.java:172)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
There are three main reasons which can cause the above error
Long CLASSPATH on Windows :
JRun 4 running on a Windows server has a limit of 32,768 characters in length for its classpath. This is due to a Windows API limitation that limits environment variables to 32K in length. JRun uses this API call on Windows when running the Java compiler. Well adobe says they don;’t have a fix and suggest a work around by keeping the directory structure names short and avoid unnneded jar files.
javac NOT in PATH
if your javac is not your regular PATH, you may see the above error, to test this just write the following command on command prompt
javac
if its in your PATH you should see the usage message, if not you need to add the folder in which this resides.
JVM Memory Issue
if you have set the JVM memory in your config to be too low, you may see the error as Jrun not being able to allocate enough memory. I try to keep the settings as “java.args=-server -Xms516m -Xmx1024m”
Cheers for this posting, guys, I will be adding your informational site to the list of useful websites on my info site¡