簡體   English   中英

非法參數異常 - 在 Netbeans 上運行但不在 Tomcat 上作為 War 文件運行的項目

[英]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”。 包裹

附加信息:

  • 我已將“路徑”環境變量設置為“C:\\Program Files\\Java\\jdk 1.8\\bin”
  • 我也嘗試將“org.apache.jasper.jar”包含到我的項目(和戰爭)中
  • jdbc4.jar 也在庫中導入

似乎是什么問題? 我無法弄清楚問題的根源。 是因為 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM