Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java illegalargumentexception-项目作为War文件在Netbeans上运行,但在Tomcat上不运行_Java_Jsp_Tomcat_Netbeans_War - Fatal编程技术网

Java illegalargumentexception-项目作为War文件在Netbeans上运行,但在Tomcat上不运行

Java illegalargumentexception-项目作为War文件在Netbeans上运行,但在Tomcat上不运行,java,jsp,tomcat,netbeans,war,Java,Jsp,Tomcat,Netbeans,War,我在本地机器上用JDK1.7(32位)在Netbeans上做了一个项目 在运行应用程序时(在netbeans上使用tomcat 8.0服务器),它在http://localhost:8080/WebApplication1 我直接从dist复制了war文件,并将其传输到安装了tomcat8.0和jdk1.8(64位)的Windows虚拟机服务器。然后,war文件通过tomcat的manager web应用程序上传 注意:“localhost:8080/”和“localhost:8080/mana

我在本地机器上用JDK1.7(32位)在Netbeans上做了一个项目 在运行应用程序时(在netbeans上使用tomcat 8.0服务器),它在
http://localhost:8080/WebApplication1

我直接从dist复制了war文件,并将其传输到安装了tomcat8.0和jdk1.8(64位)的Windows虚拟机服务器。然后,war文件通过tomcat的manager web应用程序上传

注意:“localhost:8080/”和“localhost:8080/manager”运行时没有任何问题

但是,当我运行应用程序时(
http://localhost:8080/WebApplication1
)-它抛出以下错误

org.apache.jasper.JasperException: Unable to compile class for JSP
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:579)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
根本原因

java.lang.IllegalArgumentException: Page directive: invalid value for import
    org.apache.jasper.compiler.Node$PageDirective.validateImport(Node.java:610)
    org.apache.jasper.compiler.Node$PageDirective.addImport(Node.java:593)
    org.apache.jasper.compiler.Parser.parsePageDirective(Parser.java:344)
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:458)
    org.apache.jasper.compiler.Parser.parseFileDirectives(Parser.java:1782)
    org.apache.jasper.compiler.Parser.parse(Parser.java:136)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:227)
    org.apache.jasper.compiler.ParserController.parseDirectives(ParserController.java:117)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:194)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
 <%@page contentType="text/html" pageEncoding="UTF-8" language="java" import="java.util.*,mypackage.one.*,mypackage.two.*;"%>
我JSP中的
是“java.util.*”和两个java类,它们是我项目的一部分。Rest我的java类导入一些“java”包

其他信息:

  • 我已将“Path”环境变量设置为“C:\Program Files\Java\jdk 1.8\bin”
  • 我也尝试过将“org.apache.jasper.jar”包含到我的项目(&war)中
  • jdbc4.jar也被导入到库中
有什么问题吗?我弄不清问题的根源。
是因为32位还是64位?还是JDK1.7 vs 1.8?还是缺少环境变量?还是tomcat配置中的问题?还有其他问题吗?

问题出现在我的导入语句中,其中包括:

原始代码

java.lang.IllegalArgumentException: Page directive: invalid value for import
    org.apache.jasper.compiler.Node$PageDirective.validateImport(Node.java:610)
    org.apache.jasper.compiler.Node$PageDirective.addImport(Node.java:593)
    org.apache.jasper.compiler.Parser.parsePageDirective(Parser.java:344)
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:458)
    org.apache.jasper.compiler.Parser.parseFileDirectives(Parser.java:1782)
    org.apache.jasper.compiler.Parser.parse(Parser.java:136)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:227)
    org.apache.jasper.compiler.ParserController.parseDirectives(ParserController.java:117)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:194)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
 <%@page contentType="text/html" pageEncoding="UTF-8" language="java" import="java.util.*,mypackage.one.*,mypackage.two.*;"%>

使用Tomcat 7.0.21某些Tomcat版本出现此错误,我在7.0.59版本中也遇到了同样的问题。

这可能是Tomcat的“compilerSourceVM”设置的问题吗?默认情况下,Tomcat将使用Java1.6编译JSP。在升级Tomcat后刚开始遇到这个问题……请参阅此处的更多内容:(与Tomcat 7.0.57或8.0.15相关)只需删除listReports.jsp上的分号即可