[Seasar-user:4198] [S2RMI] Dtoをやり取りするとClassCastExceptionが発生する

Takuya OKADA [E-MAIL ADDRESS DELETED]
2006年 7月 27日 (木) 01:15:15 JST


岡田と申します。

S2RMIを使用して、Web側とLogic側という二種類のプロジェクトを
連結しようとしていますが、うまくいきません。
現象としては、
Logic側のServiceクラスで作成したDtoを、
Tomcat上に展開したWeb側のPageクラスで取得しようとすると、
ClassCastExceptionが発生します。

Tomcatを利用せずに、Web側のテストクラスを実行したところ、
値が正常に取得できました。

利用している環境は以下の通りです。
Java:JDK1.5.0_06
Tomcat:5.5.17
S2container:2.4.0-beta-4-SNAPSHOT
S2RMI:1.0.3-SNAPSHOT
S2Remoting:1.0.2

元々、Web側を1.4、Logic側を1.5という異なるバージョンで繋ごうとして
いますが、上記の問題が起こったため、同バージョン(1.5)でコンパイル
し直しても改善されませんでした。
使用したDtoはWeb側にあるもので、Logic側でプロジェクト参照して
利用しています(=同じクラスのはず)。
もちろん、Serializableをimplementsして、シリアルバージョンIDは
付与しています。

エラーログを以下に転機します。
=========
XXXX-XX-XX XX:XX:XX,XXX [http-8080-Processor25] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/hoge].[facesServlet] - サーブレット facesServlet のServlet.service()が例外を投げました
java.lang.ClassCastException: jp.co.hoge.dto.HogeDto
    at jp.co.hoge.web.foo.fooTopPage.initialize(fooTopPage.java:40)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.seasar.framework.util.MethodUtil.invoke(MethodUtil.java:42)
    at org.seasar.framework.beans.impl.BeanDescImpl.invoke(BeanDescImpl.java:206)
    at org.seasar.teeda.extension.html.impl.HtmlViewHandler.invokeInitialize(HtmlViewHandler.java:142)
    at org.seasar.teeda.extension.html.impl.HtmlViewHandler.renderView(HtmlViewHandler.java:113)
    at org.seasar.teeda.extension.html.impl.HtmlViewHandler.renderView(HtmlViewHandler.java:98)
    at org.seasar.teeda.core.lifecycle.impl.RenderResponsePhase.executePhase(RenderResponsePhase.java:37)
    at org.seasar.teeda.core.lifecycle.AbstractPhase.execute(AbstractPhase.java:55)
    at org.seasar.teeda.core.lifecycle.LifecycleImpl.render(LifecycleImpl.java:134)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:80)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:62)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:55)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:63)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)
==========

なにかご存知の方がいらっしゃいましたら、ご教授ください。
よろしくお願いします。



-- 
Takuya OKADA <[E-MAIL ADDRESS DELETED]>




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