我正在尝试运行我制作的.jsp
页面并继续遇到此错误:
输入例外报告
消息内部服务器错误
说明服务器遇到内部错误,导致无法完成此请求。
例外
org.apache.jasper.JasperException:PWC6033:JSP的Javac编译出错
PWC6197:jsp文件中的第27行:/Drupalcheck.jsp发生错误 PWC6199:生成的servlet错误: -source 1.5不支持菱形运算符 (使用-source 7或更高版本来启用菱形运算符)
注意GlassFish Server Open Source Edition 4。0日志中提供了异常的完整堆栈跟踪及其根本原因。
问题在于我不知道为什么我会得到它。我将JDK设置为1.7,在源代码下将源/二进制格式设置为JDK 7。
我使用Netbeans作为我的IDE。
我已经完成了从重新安装Java到重新安装Netbeans所做的一切,并且无处可去。
答案 0 :(得分:11)
在我看来,这与Netbeans无关,而是与正在使用的应用服务器有关。怀疑您使用的是 Glassfish 或 Tomcat ,因为它们与Netbeans 7捆绑在一起。
我遇到了与Apache Tomcat 相同的问题,并且归结为Tomcat(Apache Jasper库)默认使用 Java 1.6进行JSP编译。您必须在web.xml
中更改JSP servlet的默认配置。我将以下几行添加到应用程序的web.xml
,注意两个参数 compilerSourceVM 和 compilerTargetVM :
<!-- Jasper JSP configuration -->
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>compilerSourceVM</param-name>
<param-value>1.7</param-value>
</init-param>
<init-param>
<param-name>compilerTargetVM</param-name>
<param-value>1.7</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<!-- The mappings for the JSP servlet -->
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.jspx</url-pattern>
</servlet-mapping>