[英]IllegalArgumentException when uploading war file to tomcat
[英]illegalargumentexception - Project running on Netbeans but not on Tomcat as War file
我在本地机器上使用 JDK 1.7(32 位)在 Netbeans 上创建了一个项目 在运行应用程序时(在 netbeans 上使用 tomcat 8.0 服务器),它在http://localhost:8080/WebApplication1
上完美运行。
我直接从 dist 复制了 war 文件,然后将其传输到安装了 tomcat 8.0 和 jdk 1.8(64 位)的 Windows VM 服务器。 然后通过 tomcat 的管理器 Web 应用程序上传 war 文件。
注意:'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)
我的 JSP 中的<%page import %>
是“java.util.*”和 2 个 java 类,它们是我的项目的一部分。 休息我的 java 类导入一些“java”。 包裹
附加信息:
似乎是什么问题? 我无法弄清楚问题的根源。 是因为 32 位还是 64 位? 还是 jdk 1.7 与 1.8? 或缺少环境变量? 还是tomcat配置有问题? 还有什么?
问题出在我的导入语句中,其中包括:
原码
<%@page contentType="text/html" pageEncoding="UTF-8" language="java" import="java.util.*,mypackage.one.*,mypackage.two.*;"%>
问题是;
在导入语句的末尾!
更正的代码:
<%@page contentType="text/html" pageEncoding="UTF-8" language="java" import="java.util.*,mypackage.one.*,mypackage.two.*"%>
使用 Tomcat 7.0.21 某些 tomcat 版本会出现此错误,我也遇到了与 7.0.59 版本相同的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.