2016-06-26 12 views
0

Ich möchte eine JSP Host-Seite für meine GWT-Projekt verwenden, um das Gebietsschema automatisch erkennen, wie in der Post vorgeschlagen How to get the Current Locale in GWT using LocaleInfo mitClasscast, wenn sie mit JSP in GWT Projekt statische Host-Seite ersetzt

<meta name="gwt:property" content="locale=<%=request.getLocale()%>"> 

Wenn jedoch ich versuche, die app in superdev Modus sogar ohne Hinzufügen dieses Tages laufen zu lassen, erhalte ich 500 Server-Fehler mit dem folgenden Stack-Trace:

java.lang.ClassCastException: org.apache.el.ExpressionFactoryImpl cannot be cast to javax.el.ExpressionFactory 
    at javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:198) 
    at javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:117) 
    at org.apache.jasper.compiler.PageInfo.<init>(PageInfo.java:79) 
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:110) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:373) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) 
    at org.apache.jasper.JspCompilationContext. 
compile(JspCompilationContext.java:646) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686) 
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) 
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) 
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) 
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) 
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428) 
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) 
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) 
    at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:68) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) 
    at org.eclipse.jetty.server.Server.handle(Server.java:370) 
    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) 
    at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949) 
    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011) 
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) 
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) 
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) 
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) 
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) 
    at java.lang.Thread.run(Thread.java:722) 

die JSP ist:

<%@ page language="java" contentType="text/html; charset=UTF-8" 
pageEncoding="UTF-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">  
    <link type="text/css" rel="stylesheet" href="play.css"> 
    <script type="text/javascript" src="play/play.nocache.js"></script> 
    <title>Insert title here</title> 
    </head> 
<body> 
</body> 
</html> 

Ich habe versucht, die javax.el-API-Jar zu meinem Build-Pfad hinzufügen, aber das Problem bleibt. Eine Google-Suche nach dieser Klassen-Casting-Ausnahme bringt nichts Relevantes.

+0

Ich würde vermuten, dass Sie Java-EL-Bibliotheken in Ihrer Bereitstellung mit den bereits vorhandenen Bibliotheken in Steg kollidieren. Sie können alle Bibliotheken hinzufügen, die Sie in Ihre Bereitstellung einschließen. ("mvn dependency: tree" sollte sie anzeigen, wenn Sie maven verwenden) –

Antwort

0

Es stellte sich heraus, dass mein GWT-Projekt auf ein Java-Projekt referenzierte, in dessen Build-Pfad sich die Tomcat-Bibliothek befand. Dies führte anscheinend zu Konflikten mit dem Anlegesteg im Super-Dev-Modus. Als ich die Bibliothek entfernte, war der Konflikt gelöst.