Java illegalargumentexception-项目作为War文件在Netbeans上运行,但在Tomcat上不运行
我在本地机器上用JDK1.7(32位)在Netbeans上做了一个项目 在运行应用程序时(在netbeans上使用tomcat 8.0服务器),它在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
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上的分号即可