2014-12-02 15 views
7

Ho realizzato un progetto su Netbeans sul mio computer locale con JDK 1.7 (32-bit) Durante l'esecuzione dell'applicazione (utilizzando il server tomcat 8.0 su netbeans), funziona perfettamente su http://localhost:8080/WebApplication1.illegalargumentexception - Progetto in esecuzione su Netbeans ma non su Tomcat come file di guerra

Ho copiato direttamente il file war dal dist e lo ho trasferito sul mio server Windows VM con tomcat 8.0 e jdk 1.8 installato (64-bit). Quindi il file di guerra è stato caricato tramite l'app web di Tomcat.

Nota: 'localhost: 8080 /' e 'localhost: 8080/manager' sono stati eseguiti senza problemi.

Tuttavia, quando vado a eseguire l'applicazione (http://localhost:8080/WebApplication1) - genera i seguenti errori.

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) 

delle cause

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) 

Il <%page import %> ho fra le JSP sono 'java.util. *' Classi e 2 java che fanno parte del mio progetto. Resto le mie classi Java importare un po 'di Java. pacchetti

Ulteriori informazioni:

  • Ho impostato variabile d'ambiente 'Path' a 'C: \ Program Files \ Java \ JDK 1.8 \ bin'
  • Ho cercato tra cui 'org.apache.jasper .jar' al mio progetto (& guerra) troppo
  • jdbc4.jar è anche importato nella libreria

Quello che sembra essere il problema? Non riesco a distinguere la fonte del problema. È a causa di 32-bit contro 64-bit? o jdk 1.7 vs 1.8? o variabile di ambiente mancante? o problema nella configurazione di tomcat? qualcos'altro?

+0

Potrebbe essere un problema con l'impostazione 'compilerSourceVM' di Tomcat? Di default Tomcat compilerà JSP utilizzando Java 1.6. http://tomcat.apache.org/tomcat-7.0-doc/jasper-howto.html – dnault

risposta

20

Il problema era nella mia dichiarazione di importazione, che comprendeva:

Codice originale

<%@page contentType="text/html" pageEncoding="UTF-8" language="java" import="java.util.*,mypackage.one.*,mypackage.two.*;"%> 

Il problema era il ; alla fine della dichiarazione di importazione!

codice corretto:

<%@page contentType="text/html" pageEncoding="UTF-8" language="java" import="java.util.*,mypackage.one.*,mypackage.two.*"%> 
+1

ha appena iniziato a eseguire questo problema dopo l'aggiornamento di Tomcat ... vedere di più qui: [Bug 57099 - parsing sciolto dell'attributo import nella direttiva di pagina rovina l'output SMAP] (https://issues.apache.org/bugzilla/show_bug.cgi?id=57099) (rilevante per Tomcat 7.0.57 in poi o 8.0.15 in poi) – MikeM

+0

basta rimuovere il punto e virgola in listReports.jsp – fjallstorm

2

Usa Tomcat 7.0.21 qualche versione di Tomcat dando questo errore, ho anche affrontato lo stesso problema con la versione 7.0.59.