[Seasar-user:8364] Re: Teeda Ajax でデータベースへ接続

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2007年 6月 15日 (金) 15:21:25 JST


丸岡です。
お返事ありがとうございます。

ajax.diconに<meta name="teeda-ajax"/>として ページクラスは定義しなくて
よいですよね?
一応、該当のページクラスを定義して確認してみたのですが、この場合、
これまで正常に動作していたprerender()でDaoからレコードを取得する処理で
エラーとなってしまいました。(NullPointerExceptionで)

つまり、ajax.diconに定義したクラスへのDIがうまくいかない?仕様?
ということでしょうか?

ただ、ajax.diconに定義しなかった場合、
ページクラスがpublicでないというようなエラーが発生していました。
他に何か設定がもれているのでしょうか?


DEBUG 2007-06-15 15:18:38,120 [http-8080-Processor24] HOT deployを開始します
DEBUG 2007-06-15 15:18:38,340 [http-8080-Processor24] クラス(xxx.web.zzz.Test001Page[zzz_test001Page])のコンポーネント定義を登録します
DEBUG 2007-06-15 15:18:38,610 [http-8080-Processor24] HOT deployを終了しました
2007-06-15 15:18:38,690 [http-8080-Processor24] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/EPC].[ajaxServlet] - サーブレット ajaxServlet のServlet.service()が例外を投げました
javax.servlet.ServletException: Ajax Component Name[zzz_test001Page] is not public.
	at org.seasar.teeda.ajax.AjaxServlet.doAjax(AjaxServlet.java:95)
	at org.seasar.teeda.ajax.AjaxServlet.doGet(AjaxServlet.java:66)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:63)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:63)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
	at java.lang.Thread.run(Thread.java:595)





>ひがです。
>
>> お世話になります。
>> 丸岡です。
>> 
>> 私も、全く同じ現象が発生しており、困っています。
>> 松崎さんはこのメール以降、本件での質問がないのですが、
>> この問題は解決したのでしょうか?
>> 
>> HTML側からAjaxサーブレットを起動するところまでは確認済みです。
>> 最初はAjaxサーブレットにdoXXX()メソッドを追加し、return "OK";
>> のように固定文字列を返すことはまでは成功しました。
>> 
>> 次のステップとして、DAOをprivateで定義して、Setter/Getterも定義して
>> doXXX()メソッド内でSQL実行しようとすると、
>> xx.xx.XxxAjaxのプロパティ(xxxDao)が見つからないので設定をスキップします
>> のメッセージ後、NullPointerExceptionでエラーとなってしまいます。
>> Eclipseでデバッグすると、確かにDaoがNullになっていました。
>> 
>XxxAjaxクラスではなく、XxxPageクラスにajaxHogeというメソッドを
>定義して試してください。
>いろいろやり方はありますが、この方法が一番簡単です。
>
>よろしくお願いします。
>
>--
>Yasuo Higa
>[E-MAIL ADDRESS DELETED]
>_______________________________________________
>Seasar-user mailing list
>[E-MAIL ADDRESS DELETED]
>https://ml.seasar.org/mailman/listinfo/seasar-user
>



Seasar-user メーリングリストの案内