BlogJavaを中心にした技術ネタなど。5.0.xで環境を作って、簡単なプログラミングをしたのですが、ちょっとハマりました。単純なHTMLを作成。Beanと連携するわけでもない、本当にただのHTMLです。PlugIn+DevLoaderを使ってTomcat上で実行。作成したHTMLにアクセスしてみると...あらら例外発生org.seasar.teeda.core.exception.UriNotFoundRuntimeException:[ETDA0026]URI(http://www.seasar.org/teeda/extension)が見つかりませんorg.seasar.teeda.extension.config.taglib.impl.AbstractTaglibManager.getTaglibElement(AbstractTaglibManager.java:68)<以下略>うーむ、TeedaのタグライブラリのURIが見つからん、と言われています。結論から言うと、原因はDevLoaderを使っていることに起因していました。・DevLoaderを使用しているので、J2EE規定のWebアプリケーションのディレクトリ構造にしていない(※)。(WEB-INF/classesやWEB-INF/libがない)・タグライブラリのクラスやTLDファイルは、Jarファイルにまとめられていて、TLDファイルを明示的に配置していない。・Teedaその他の稼動に必要なJarファイルは、Mavenのローカルリポジトリ上にある。※DevLoaderを使うと、Webアプリ構成になっていなくてもTomcatにクラスやJarをロードさせ、Webアプリとして稼動させることができます。下にJarを置かないとTLDファイルを見つけてくれないようです。上述の通り、今回はTLDファイルを含むJarファイルが、Maven2のローカルリポジトリ上に存在するので、TLDファイルが見つからず、エラーになっているのでした。対処の方法はいくつかありそうです。PlugInDevLoader評価1TLDファイルを、WEB-INF下に配置するJarからTLDファイルを取り出し、WEB-INF下に配置します。PlugIn+DevLoaderによる効率的な開発が可能です。本来必要のないTLDファイルを配置することになってしまうのがタマに傷な気がします。使用する使用する○2TLDファイルを含むJarを、WEB-INF/lib下に配置するTLDファイルを含むJarを、Maven2ローカルリポジトリから、WEB-INF/lib下にコピーします。PlugIn+DevLoaderによる効率的な開発が可能です。Maven2でJarを一元管理しているのに、それとは別にJarを配置・管理することになり、ちょっと頂けません。PlugInのWebアプリケーションルートとして指定します。この場合は、DevLoaderを使わないので、Javaソース等を修正したらリアルタイムにTomcatに自動反映ができず、Tomcatに反映するにはWebアプリ構成を更新する必要があります。Webアプリ構成の作成・更新は、Maven2のwar:explodedゴールを使えば簡単にできますし、逆に言えば「ちょっと直しただけでいちいちTomcatがリロードしてうっとおしい」と言う事がなくなるので、むしろ利点と言えるかもしれません。PlugInはあきらめて、普通にWarモジュールを作成・デプロイします。この場合は、修正したソースを反映させるためには、Warの生成とTomcatへのデプロイが毎回ともなうので、開発効率が低下してしまいます。個人的には、3.の方法が好みかなと思います。PlugIn+DevLoaderでロードしている場合には、常に問題になるはずです。それにしても、Teeda良くできてるなぁ...素にJSFを使うと、faces-config.xmlがかなり問題になりそうですが、それもS2Containerの自動登録機能で解決。コメント:0プロフィールAuthor:crossroad関西在住。フリーランスのソフトウェアエンジニア。エレキベース(Rock&Roll)とお酒が好物でございます。