编译AWS Elastic Beanstalk演示引发异常No Java编译器可用

时间:2012-02-18 22:46:21

标签: java jsp amazon-web-services elastic-beanstalk

我正在编译Amazon Web Services Elastic Beanstalk演示并尝试在全新安装的Arch linux上运行它(在本地,在tomcat7上)。

每次都无法通过控制台:

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)

我做错了什么?

2 个答案:

答案 0 :(得分:3)

Arch Linux包含Java Runtime Environment (JRE)包与Java Development Kit (JDK)之间的通常区别,如How to download and install prebuilt OpenJDK packages中其他操作系统所示,例如对于Debian或Ubuntu:

  

openjdk-7- jre 包仅包含Java运行时环境。   如果要开发Java程序,请安装openjdk-7- jdk   包。 [强调我的]

OpenJDK的相应软件包名称在这方面显然有点不幸和误导(虽然可以理解),但两个软件包的名称中都包含 openjdk ,但实际只有一个JDK - 相同的相似性适用于Arch Linux jre7-openjdkjdk7-openjdk包double。

因此,你只需要为Arch Linux安装适当的JDK软件包,并且应该很好,即{em> jdk7-openjdk Arch Linux Package Database search for jdk

祝你好运!

答案 1 :(得分:3)

在这里找到答案:https://bbs.archlinux.org/viewtopic.php?id=135775

Arch tomcat7包已损坏。

我卸载了tomcat7:

pacman -R tomcat7

然后将正常的Tomcat 7文件从Apache.org复制到/ usr / share / tomcat7

现在一切正常。