我正在尝试运行我制作的.jsp
页面,并不断遇到此错误:
类型例外报告
消息内部服务器错误
描述服务器遇到内部错误,导致服务器无法满足此请求。
例外
org.apache.jasper.JasperException:PWC6033:JSP的Javac编译错误
PWC6197:jsp文件:/Drupalcheck.jsp中的第27行发生错误
PWC6199:生成的servlet错误:
-source 1.5中不支持diamond运算符
(使用-source 7或更高版本启用菱形运算符)
note注意在GlassFish Server Open Source Edition 4.0日志中,可以找到该异常及其原因的完整堆栈跟踪。
问题是我不知道为什么要得到它。我在“库”下将JDK设置为1.7,在“源”下将“源/二进制格式”设置为JDK 7。
我正在使用Netbeans作为我的IDE。
从重新安装Java到重新安装Netbeans,我已经完成了所有工作,却一无所获。
最佳答案
在我看来,这与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>