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

Pla*_*ker 7 java jsp tomcat netbeans war

我在我的本地机器上使用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的经理网络应用程序上传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)
Run Code Online (Sandbox Code Playgroud)

根本原因

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)
Run Code Online (Sandbox Code Playgroud)

<%page import %>我在我的JSP是"的java.util.*"和2 java类这是我的项目的一部分.休息我的java类导入一些'java'.包

附加信息:

  • 我将'Path'环境变量设置为'C:\ Program Files\Java\jdk 1.8\bin'
  • 我已经尝试将'org.apache.jasper.jar'包含在我的项目中(&war)
  • jdbc4.jar也在库中导入

什么似乎是问题?我无法弄清楚问题的根源.是因为32位还是64位?或jdk 1.7 vs 1.8?或缺少环境变量?或tomcat配置中的问题?别的什么?

Pla*_*ker 20

问题出在我的导入声明中,其中包括:

原始代码

 <%@page contentType="text/html" pageEncoding="UTF-8" language="java" import="java.util.*,mypackage.one.*,mypackage.two.*;"%>
Run Code Online (Sandbox Code Playgroud)

问题出;在导入声明的最后!

更正代码:

 <%@page contentType="text/html" pageEncoding="UTF-8" language="java" import="java.util.*,mypackage.one.*,mypackage.two.*"%>
Run Code Online (Sandbox Code Playgroud)