![](/img/trans.png)
[英]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.