Netbeans不会将JSP视为源级别7

时间:2013-10-30 04:49:48

标签: java jsp netbeans netbeans-7

我正在尝试运行我制作的.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所做的一切,并且无处可去。

1 个答案:

答案 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>