2011-08-15 15 views
3

私はSpring Securityで保護することを決めたGWTアプリケーション(rooによって生成された)を持っています。 Rooはセキュリティ設定の一環としてlogin.jspxページを生成し、このjspxはいくつかの基本的なJSTLタグライブラリを使用します。開発モードのGWT + JSTLは可能ですか?

開発モードで実行しているとき、Jettyサーバーの基盤となっているサーバーは明らかにこれを嫌いです。次のMavenの依存関係

<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> 

で、私は

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

を取得し、私の推測では、JSTL-IMPL依存関係がすでにWebコンテナによって提供される一つと衝突したということでしたが、私は提供にその範囲を変更するとき私は得る:

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

これは誰でもうまくいきましたか?

P.S.私はあなたがTomcatにアプリをエクスポートすることができ、うまく動作するという噂を聞いているが、GWTのコンパイルは時間のかかる操作になる可能性があるので、これをdevモードで動作させることは素晴らしいだろう。

答えて

5

明らかに、GWT開発モードの基盤となるJettyサーバは、JSTL 1.1が既にクラスパス上のどこかにあります。あなたは

<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> 

にデフォルト

<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> 

によってルーが追加されますMavenの依存関係を変更する場合は、作業GWT + JSTL環境を持つことになります!

+0

ありがとうございます。 [WARNING] jstl:jstl:1.1.1をダウンロード中です このアーティファクトはjavax.servlet:jstl:1.1.1に再配置されました。 それはより正確なグループIDだと思われます。あなたのソリューションは非常にうまく動作し、私に悲しみの壮大な量を保存しました、ありがとうございます! – Taylor

+0

テイラーありがとう、私は変更を反映するために投稿を編集しました。 – jkschneider