[Seasar-user:16097] TeedaAjax+S2DaoでClassCastExceptionが発生します。
Naoto SHINGAKI
[E-MAIL ADDRESS DELETED]
2008年 10月 23日 (木) 17:52:05 JST
初めまして。お世話になります。
新垣と申します。
現在Chura Projectを利用し開発を行なっております。
しかしながら一部エラーがつぶせない為御教授頂ければと思います。
JDK 1.5.0_15
Dolting 0.28.0
teedaAjax 1.0.12
s2Dao 1.0.47
teedaAjaxよりKumuを利用しPOSTした際にJavaにてS2Daoを使い
Daoクラスをインスタンス化すると
XxxDao xxxDao = (XxxDao) container.getComponent(XxxDao.class)
にてClassCastExceptionが発生します。
そのまま同じメソッドにPostすると2回目以降は発生しません。
この現象はHot Deploy時にのみ発生し、Warm Deploy及びCool Deploy時には発生しません。
また、ajaxを使わずにdoメソッドとしてPostした場合は発生しません。
以下にException発生付近のソースを転記します。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
S2Container container = S2ContainerFactory.create("jp/co/xxx/XxxDao.dicon");
container.init();
XxxDao xxxDao = (XxxDao)container.getComponent(XxxDao.class);
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
以下にスタックトレースを転記します。
クラス名は実際のものから変更しております。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
メッセージ
説明 The server encountered an internal error () that prevented it from
fulfilling this request.
例外
javax.servlet.ServletException: The error occurred while create Ajax
response. jp.co.package.dao.TblXxxDao$$EnhancedByS2AOP$$2606b8
org.seasar.teeda.ajax.AjaxServlet.doAjax(AjaxServlet.java:116)
org.seasar.teeda.ajax.AjaxServlet.doPost(AjaxServlet.java:75)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:63)
org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:77)
org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
原因
java.lang.ClassCastException: jp.co.package.dao.XxxDao$$EnhancedByS2AOP$$2606b8
jp.co.package.logic.XxxxLogic.getItems(XxxxLogic.java:72)
jp.co.package.service.XxxxxService.getEntity(XxxxxService.java:47)
jp.co.package.web.xxx.XxxxxxPage.ajaxEntity(XxxxxxPage.java:79)
jp.co.package.web.xxx.XxxxxxPage$$EnhancedByS2AOP$$130661d.$$ajaxEntity$$invokeSuperMethod$$(XxxxxxPage$$EnhancedByS2AOP$$130661d.java)
jp.co.package.web.xxx.XxxxxxPage$$EnhancedByS2AOP$$130661d$$MethodInvocation$$ajaxEntity2.proceed(MethodInvocationClassGenerator.java)
org.seasar.framework.aop.interceptors.TraceInterceptor.invoke(TraceInterceptor.java:73)
jp.co.package.web.xxx.XxxxxxPage$$EnhancedByS2AOP$$130661d$$MethodInvocation$$ajaxEntity2.proceed(MethodInvocationClassGenerator.java)
jp.co.package.web.xxx.XxxxxxPage$$EnhancedByS2AOP$$130661d.ajaxEntity(ReportPage$$EnhancedByS2AOP$$130661d.java)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.seasar.framework.util.MethodUtil.invoke(MethodUtil.java:93)
org.seasar.framework.beans.impl.BeanDescImpl.invoke(BeanDescImpl.java:213)
org.seasar.teeda.ajax.AjaxServlet.doAjax(AjaxServlet.java:114)
org.seasar.teeda.ajax.AjaxServlet.doPost(AjaxServlet.java:75)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:63)
org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:77)
org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
以上です。
Seasar-user メーリングリストの案内