[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 メーリングリストの案内