• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

I'm trying to run a .jsp page and all I get is the following error. Thoughts?

Participant ,
Dec 23, 2007 Dec 23, 2007

Copy link to clipboard

Copied

Running Coldfusion 8 / JRun 4 updater 7 / Coldfusion 8 hotfix 2.

I'm trying to run a .jsp page and all I get is the following error. Thoughts?

Could not invoke Java compiler, please make sure jikesw is in I:\JRun4/bin or put a JDK bin directory in your path.

jrunx.compiler.JavaCompiler$NoCompilerFoundException: Could not invoke Java compiler, please make sure jikesw is in I:\JRun4/bin or put a JDK bin directory in your path.
at jrunx.compiler.JavaCompiler.outProcessCompile(JavaCompiler.java:474)
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:707)
at jrun.jsp.JSPServlet.translate(JSPServlet.java:125)
at jrun.jsp.JSPServlet.service(JSPServlet.java:113)
at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)
at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

TOPICS
Advanced techniques

Views

2.6K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Valorous Hero ,
Dec 23, 2007 Dec 23, 2007

Copy link to clipboard

Copied

This TechNote describes the problem
http://www.adobe.com/go/7f887f12

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Dec 23, 2007 Dec 23, 2007

Copy link to clipboard

Copied

I read that and tried the hotfix, but it did not work. Think that applies to the latest updater 7? That hotfix was released back in 2006.

quote:

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.


How can I find out how many characters are being run?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Valorous Hero ,
Dec 23, 2007 Dec 23, 2007

Copy link to clipboard

Copied

What hotfix? The article says there is no fix for the issue aside from shortening your classpath. If it is a windows limitation I would guess it still applies.

IIRC I think you can find the classpath in the jvm.config file.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Dec 23, 2007 Dec 23, 2007

Copy link to clipboard

Copied

You're right, that ws another fix I tried. There is no fix fo rthe issue described, but it still seems like an old issue. My class paths are short. Here is my jvm.config (pretty standard):

#
# VM configuration
#
# Where to find JVM, if {java.home}/jre exists then that JVM is used
# if not then it must be the path to the JRE itself
java.home=I:/JRun4/jre
#
# If no java.home is specified a VM is located by looking in these places in this
# order:
#
# 1) bin directory for java.dll (windows) or lib/<ARCH>/libjava.so (unix)
# 2) ../jre
# 3) registry (windows only)
# 4) JAVA_HOME env var plus jre (ie $JAVA_HOME/jre)
#

# Arguments to VM
java.args=-server -Xmx1000m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=256m -XX:+UseParallelGC -Dcoldfusion.rootDir={application.home}/

#
# commas will be converted to platform specific separator and the result will be passed
# as -Djava.ext.dirs= to the VM
java.ext.dirs={jre.home}/lib/ext

#
# where to find shared libraries
java.library.path={application.home}/lib,{application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib,{application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/jintegra/bin,{application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/jintegra/bin/international
system.path.first=false

#
# set the current working directory - useful for Windows to control
# the default search path used when loading DLLs since it comes
# before system directory, windows directory and PATH
java.user.dir={application.home}/../lib

# JVM classpath
java.class.path={application.home}/servers/lib,{application.home}/lib

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Valorous Hero ,
Dec 23, 2007 Dec 23, 2007

Copy link to clipboard

Copied

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Dec 24, 2007 Dec 24, 2007

Copy link to clipboard

Copied

If I roll my jvm back to 1.5, it works. So it has something to do with 1.6

works: java.home=C:/jdk1.5.0_14

does not work: I:/JRun4/jre (this is the default 1.6 install)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 27, 2007 Dec 27, 2007

Copy link to clipboard

Copied

Hi Neo Rye,
The link that cfSearching references in his first post says it all. The Technote says:

Reason
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.

Solution
There is no fix for this, as it is a Windows limitation. This problem does not occur with other operating systems.

A workaround for this issue is to use short directory names and structures. Instead of placing class files or JAR files many sub-directories deep, place them in a directory right off the root directory, for example C:\myJars. Keeping short directory paths allows the use of a classpath with more individual JAR files.


By the way, shouldn't java.home=I:/JRun4/jre actually be jre.home=I:/JRun4/jre instead?



Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 16, 2008 Jan 16, 2008

Copy link to clipboard

Copied

We are having the same issue. Our classpath is less than 1000 characters, so the TechNote is irrelevant. When we use JAVA 1.4, we have no problems, but as soon as we try 1.5 or 1.6 we have this issue. Has anyone found a solution?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 16, 2008 Jan 16, 2008

Copy link to clipboard

Copied

I forgot to mention: JRun 4 build 108621 (updater 7) with Java 1.6.0_3

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jan 21, 2008 Jan 21, 2008

Copy link to clipboard

Copied

Robert_Com99 wrote
We are having the same issue. Our classpath is less than 1000 characters, so the TechNote is irrelevant. When we use JAVA 1.4, we have no problems, but as soon as we try 1.5 or 1.6 we have this issue.

Yes, that's likely. It has been known that insufficient allocation of JVM memory can also lead to the NoCompilerFoundException. Google it.

To verify whether your JVM settings are good, open the file {CF_HOME}\runtime\bin\jvm.config in a text editor. (As a rule, back-up your system files before you edit them). Locate the entry "Arguments to VM". Are the values for Xmx and Xms each at least half of the value of your server's RAM?

If not, set each of Xmx and Xms to a value between 50-75% of your server's physical RAM. So, if your server has 1GB RAM, you could use 512MB. The line in jvm.config should therefore read

java.args=-server -Xmx512m -Xms512m -Dsun.io.useCanonCaches=false ... etc., etc.

Use the same value for Xmx and Xms. It helps keep the JVM's behaviour predictable.

Save the file. Restart Coldfusion. Do you still get the NoCompilerFoundException?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 22, 2008 Jan 22, 2008

Copy link to clipboard

Copied

We also thought it might be related to memory allocation and tried many different combinations for the VM:

Here is our current java.args: java.args=-server -Xmx512M -Xms128m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=512m -XX:PermSize=128m -XX:NewSize=48m -DJINTEGRA_NATIVE_MODE -DJINTEGRA_PREFETCH_ENUMS

We also have tried:

-Xmx1024M - perhaps the default minimum heap size would be ok

-Xmx1024M -Xms1024M - maybe the memory needs to be in place from the start of the VM

-server - maybe the vm can handle the memory itself and we can try to pass a bare minimum of arguments

Along with many other combinations....

This is one of several server instances on the server, so we couldn't live with using half the RAM for this instance but even when we go higher with the heap size, it doesn't seem to help.

We also tried using a single class with a simple hello world program and no other jar files and we got the same error message....

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jan 22, 2008 Jan 22, 2008

Copy link to clipboard

Copied

Robert_Com99 wrote
This is one of several server instances on the server

Then you could still have a memory allocation problem. One of the instances might be using the lion's share of the JVM. Coldfusion Muse has a possible answer.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 07, 2008 Feb 07, 2008

Copy link to clipboard

Copied

I don't think it is related to memory allocation. Though we are troubleshooting this issue on our dev server which does have multiple instances (with separate JVM config files), we encounter the same issue on our production server which has only one instance.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 08, 2008 Feb 08, 2008

Copy link to clipboard

Copied

LATEST
Robert_Com99, we've given it a go. You should report it to Adobe.



Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources
Documentation