3 Stimmen

GWT + JSTL im Entwicklungsmodus - ist das möglich?

Ich habe eine GWT-App (generiert von Roo), die ich beschlossen habe, mit Spring Security zu sichern. Roo generiert eine login.jspx Seite als Teil der Sicherheitseinrichtung und diese jspx verwendet einige grundlegende JSTL Taglibs.

Im Entwicklungsmodus mag der zugrundeliegende Jetty-Server dies offenbar nicht. Mit den folgenden Maven-Abhängigkeiten

    <dependency>
        <groupId>javax.servlet.jsp.jstl</groupId>
        <artifactId>jstl-api</artifactId>
        <version>1.2</version>
        <classifier/>
    </dependency>
    <dependency>
        <groupId>org.glassfish.web</groupId>
        <artifactId>jstl-impl</artifactId>
        <version>1.2</version>
        <classifier/>
    </dependency>

Ich bekomme

java.lang.AbstractMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;

Meine Vermutung war, dass die jstl-impl-Abhängigkeit mit einem bereits durch den Web-Container zur Verfügung gestellt wurde, aber wenn ich seinen Bereich auf bereitgestellt ändern, erhalte ich:

org.apache.jasper.JasperException: /WEB-INF/views/login.jspx(22,69) The attribute prefix fn does not correspond to any imported tag library

Hat das jemand erfolgreich hinbekommen?

P.S. Ich höre Gerüchte, dass man die App einfach nach Tomcat exportieren kann, und es läuft gut, aber GWT-Kompilierung kann eine zeitaufwendige Operation sein, so wäre es toll, dies im Dev-Modus zu bekommen.

5voto

Jonathan Schneider Punkte 25204

Offensichtlich hat der Jetty-Server, der den GWT-Entwicklungsmodus unterstützt, JSTL 1.1 bereits irgendwo auf dem Klassenpfad. Wenn Sie die Maven-Abhängigkeiten ändern, die Roo standardmäßig hinzufügt

    <dependency>
        <groupId>javax.servlet.jsp.jstl</groupId>
        <artifactId>jstl-api</artifactId>
        <version>1.2</version>
        <classifier/>
    </dependency>
    <dependency>
        <groupId>org.glassfish.web</groupId>
        <artifactId>jstl-impl</artifactId>
        <version>1.2</version>
        <classifier/>
    </dependency>

zu

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.1.1</version>
        <classifier/>
    </dependency>
    <dependency>
    <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>1.1.1</version>
    </dependency>

Sie werden eine funktionierende GWT + JSTL Umgebung haben!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X