Question

I'm compiling the Amazon Web Services Elastic Beanstalk demo and attempting to run it (locally, on tomcat7) on a fresh install of Arch linux.

Every time, it fails to the console with:

Feb 18, 2012 2:31:41 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jsp] in context with path [/TryTwo] threw exception [java.lang.IllegalStateException: No Java compiler available] with root cause
java.lang.IllegalStateException: No Java compiler available
at org.apache.jasper.JspCompilationContext.createCompiler(JspCompilationContext.java:228)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:638)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
# which java 
/usr/bin/java

# java -version 
java version "1.7.0_03-icedtea"
OpenJDK Runtime Environment (IcedTea7 2.1) (ArchLinux build 7.b147_2.1-1-x86_64)
OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode)

What am I doing wrong?

Was it helpful?

Solution 2

Found the answer here: https://bbs.archlinux.org/viewtopic.php?id=135775

The Arch tomcat7 package is broken.

I uninstalled tomcat7:

pacman -R tomcat7

And then copied the normal Tomcat 7 files from Apache.org to /usr/share/tomcat7

Everything works fine now.

OTHER TIPS

Arch Linux features the usual distinction between the Java Runtime Environment (JRE) package and the Java Development Kit (JDK) as shown for other OS in How to download and install prebuilt OpenJDK packages as well, e.g. for Debian or Ubuntu:

The openjdk-7-jre package contains just the Java Runtime Environment. If you want to develop Java programs then install the openjdk-7-jdk package. [emphasis mine]

The respective package names of OpenJDK are obviously a bit unfortunate and misleading in this regard (though understandable), insofar both packages feature openjdk in its name, but only one the actual JDK - the same similarity applies for the Arch Linux jre7-openjdk and jdk7-openjdk package double.

Thus, you'll simply have to install the appropriate JDK package for Arch Linux and should be good to go, i.e. likely jdk7-openjdk as per a Arch Linux Package Database search for jdk.

Good luck!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top