我正在尝试运行我制作的.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>

07-24 19:07
查看更多