[Seasar-user:5759] 【Chura】FacesContextFactory が見つからない&テーブル駆動開発が出来ない。
ryota
[E-MAIL ADDRESS DELETED]
2007年 1月 18日 (木) 00:29:57 JST
ryotaです。
Chura Projectを新規に作成し、Webアプリケーションを作成しようと思っています。
開発中に下記2つの現象が起こります。
解決策あればご教授願います。
○開発環境
Dolteng0.16.1
Diigu1.0.0
DbLancher0.0.2
Teeda1.0.3
uuji-1.0-beta-1-SNAPSHOT
○1点目 javax.faces.context.FacesContextFactoryが見つからない例外
まず、Chura Projectがきちんとできているか確認するためにWeb+DB Press vol36でやっていた
inputText.html,outputText.html,InputTextPage.java,OutputTextPage.java
を作成し、inputText.htmlで入力した値がoutputText.htmlで表示されることを確認しました。
それ以降、ページ駆動開発により、HTMLを作ってはPageクラスを作成しということを繰り返すと、あるとき(何をやったとかはなく)突然、html右クリック⇒Dolteng⇒View
on Serverでページを開くと下記の例外が出るようになります。
java.lang.IllegalStateException: no factory
javax.faces.context.FacesContextFactory configured for this appliction
javax.faces.FactoryFinder.getFactory(FactoryFinder.java:48)
javax.faces.internal.WebAppUtil.getFactory(WebAppUtil.java:142)
javax.faces.webapp.FacesServlet.init(FacesServlet.java:67)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Thread.java:595)
ChuraProjectを作り直すと例外は発生しないのですが、開発を進めてしばらく経つとこの例外が出てきます。この現象が3回続いています。
デバッグで追って見ると、サーバ起動時には
javax.faces.FactoryFinder.setFactory()が呼ばれて4つほどファクトリクラスがfactoryClassNamesプロパティに格納されるのですが、例外が発生しているときは、そのプロパティの中身を取り出すjavax.faces.FactoryFinder.getFactory()メソッドではfactoryClassNamesプロパティの中身が空で、その結果ファクトリクラスがないと怒られます。
解決策あればご教授願います。
○2点目 テーブル駆動開発が出来ない。
ChuraProjectの[Generate Scaffold
Application]機能ですが、予め用意されているEMPテーブルをメンテナンスするアプリケーションは問題なく作成できるのですが、自作のテーブルをメンテナンスするアプリケーションを[Generate
Scaffold Application]機能で作成すると、tablenameConfirmPage.javaとtablenameEditPage.javaの
Map data = getTablenameDao().find();
の箇所で下記のコンパイルエラーが出ます。
The method find(Integer) in the type GenericDao is not applicable for
the arguments () TablenameEditPage.java ChuraShopping/src/main/java/shopping/web/tablename line
19 2007/01/17 5:58:27 123
tablenameテーブルの構成は
id:int(4)
name:text
price:int(4)
でcreateしました。
ちなみにtablenameの名前は意図的に変えてあります。
こちらも解決策あればご教授ねがいます。
Seasar-user メーリングリストの案内