DWR Marshal Problem - IllegalStateException in BeanConverter for another JavaBean

View: New views
1 Messages — Rating Filter:   Alert me  

DWR Marshal Problem - IllegalStateException in BeanConverter for another JavaBean

by Oziel Neto :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Dear DWR Users,

I have a problem that was invalidating may POC (Proof of Concepts) for a big project using DWR.

My business domain have two POJOs writed as JavaBeans:

@Entity // JPA ENTITY
public class CategoriaVO implements Serializable {

        private Long objectId;

        // another properties
        // all setter and getter methods
}

@Entity // JPA ENTITY
public class ProdutoVO implements Serializable {

        private Long objectId;
        private CategoriaVO category; // agregation of CategoriaVO

        // another properties
        // all setter and getter methods

}

When DWR try to marshal a ArrayList of ProdutoVO instances, the exception below occurs:

2007-07-05 21:08:53,734 746406 DEBUG [org.directwebremoting.util
.DebuggingPrintWriter ] (TP-Processor3:debug:43) out(26184137): //#DWR-INSERT
2007-07-05 21:08:53,734 746406 DEBUG [org.directwebremoting.util.DebuggingPrintWriter] (TP-Processor3:debug:43) out(26184137): //#DWR-REPLY
2007-07-05 21:08:53,734 746406 WARN  [ org.directwebremoting.convert.CollectionConverter] (TP-Processor3:warn:67) Conversion error for java.util.Vector.
org.directwebremoting.extend.MarshallException: Error marshalling br.com.gsp.ramses.cadastros.produto.ProdutoVO : Ignoring request to inline on reference for: Object:s0:{codigo=Simple:"3", descricao=Simple:"Ve\u00EDculos", objectId=Simple:16086212, objectVersion=Simple:12}. See the logs for more details.
    at org.directwebremoting.convert.BasicObjectConverter.convertOutbound(BasicObjectConverter.java:200)
    at org.directwebremoting.dwrp.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:192)
    at org.directwebremoting.convert.CollectionConverter.convertOutbound (CollectionConverter.java:206)
    at org.directwebremoting.dwrp.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:192)
    at org.directwebremoting.extend.ScriptBufferUtil.createOutput(ScriptBufferUtil.java :56)
    at org.directwebremoting.dwrp.BaseCallMarshaller$CallScriptConduit.addScript(BaseCallMarshaller.java:512)
    at org.directwebremoting.extend.EnginePrivate.remoteHandleCallback(EnginePrivate.java:56)
    at org.directwebremoting.dwrp.BaseCallMarshaller.marshallOutbound(BaseCallMarshaller.java:330)
    at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:53)
    at org.directwebremoting.servlet.UrlProcessor.handle (UrlProcessor.java:101)
    at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146)
    at jfast.core.dwr.FastDWRServlet.doPost(FastDWRServlet.java:61)
    at javax.servlet.http.HttpServlet.service (HttpServlet.java:727)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:184)
    at jfast.core.filter.ControlCacheFilter.doFilter(ControlCacheFilter.java:95)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:216)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:184)
    at jfast.core.filter.LoginFilter.doFilter (LoginFilter.java:160)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:216)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java :184)
    at jfast.core.filter.RequestResponseLoggerFilter.doFilter(RequestResponseLoggerFilter.java:133)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:216)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:184)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:276)
    at org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
    at com.sun.enterprise.web.WebPipeline.invoke (WebPipeline.java:73)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
    at com.sun.enterprise.web.VirtualServerPipeline.invoke (VirtualServerPipeline.java:120)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
    at org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service (CoyoteAdapter.java:239)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
    at org.apache.jk.common.ChannelSocket.invoke (ChannelSocket.java:754)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:684)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:876)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run (ThreadPool.java:653)
    at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IllegalStateException: Ignoring request to inline on reference for: Object:s0:{codigo=Simple:"3", descricao=Simple:"Ve\u00EDculos", objectId=Simple:16086212, objectVersion=Simple:12}
    at org.directwebremoting.dwrp.AbstractOutboundVariable.getReferenceVariable(AbstractOutboundVariable.java:148)
    at org.directwebremoting.dwrp.DefaultConverterManager.convertOutbound(DefaultConverterManager.java :181)
    at org.directwebremoting.convert.BasicObjectConverter.convertOutbound(BasicObjectConverter.java:189)
    ... 48 more
2007-07-05 21:08:53,734 746406 WARN  [org.directwebremoting.convert.CollectionConverter ] (TP-Processor3:warn:67) Conversion error for java.util.Vector.
org.directwebremoting.extend.MarshallException: Error marshalling br.com.gsp.ramses.cadastros.produto.ProdutoVO: Ignoring request to inline on reference for: Object:s1:{codigo=Simple:"1", descricao=Simple:"Im\u00F3veis", objectId=Simple:32637188, objectVersion=Simple:1}. See the logs for more details.
    at org.directwebremoting.convert.BasicObjectConverter.convertOutbound(BasicObjectConverter.java:200)
    at org.directwebremoting.dwrp.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:192)
    at org.directwebremoting.convert.CollectionConverter.convertOutbound(CollectionConverter.java:206)
    at org.directwebremoting.dwrp.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:192)
    at org.directwebremoting.extend.ScriptBufferUtil.createOutput(ScriptBufferUtil.java:56)
    at org.directwebremoting.dwrp.BaseCallMarshaller$CallScriptConduit.addScript(BaseCallMarshaller.java:512)
    at org.directwebremoting.extend .EnginePrivate.remoteHandleCallback (EnginePrivate.java:56)
    at org.directwebremoting.dwrp.BaseCallMarshaller.marshallOutbound(BaseCallMarshaller.java:330)
    at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:53)
    at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101)
    at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146)
    at jfast.core.dwr.FastDWRServlet.doPost(FastDWRServlet.java:61)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java :397)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:184)
    at jfast.core.filter.ControlCacheFilter.doFilter(ControlCacheFilter.java:95)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:216)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:184)
    at jfast.core.filter.LoginFilter.doFilter(LoginFilter.java:160)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:216)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:184)
    at jfast.core.filter.RequestResponseLoggerFilter.doFilter(RequestResponseLoggerFilter.java:133)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:216)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:184)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java :276)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
    at org.apache.catalina.core.StandardContextValve.invokeInternal (StandardContextValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java :566)
    at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
    at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:137)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
    at org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java:939)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
    at org.apache.jk.common.HandlerRequest.invoke (HandlerRequest.java:282)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:754)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:684)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt (ChannelSocket.java:876)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:653)
    at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IllegalStateException: Ignoring request to inline on reference for: Object:s1:{codigo=Simple:"1", descricao=Simple:"Im\u00F3veis", objectId=Simple:32637188, objectVersion=Simple:1}
    at org.directwebremoting.dwrp.AbstractOutboundVariable.getReferenceVariable(AbstractOutboundVariable.java:148)
    at org.directwebremoting.dwrp.DefaultConverterManager.convertOutbound(DefaultConverterManager.java :181)
    at org.directwebremoting.convert.BasicObjectConverter.convertOutbound(BasicObjectConverter.java:189)
    ... 48 more
2007-07-05 21:08:53,734 746406 DEBUG [org.directwebremoting.util.DebuggingPrintWriter ] (TP-Processor3:debug:43) out(26184137): var s2=new Produto();var s1=new Categoria();var s3=new Produto();var s0=new Categoria();var s4=new Produto();var s5=new Produto();var s6=new Produto();s2.categoriaVO=s1;s2.codigo="GG-10101";s2.descricao="gol 1.8 2002";s2.descricaoCategoria="Im\u00F3veis";s2.objectId=1899299113;s2.objectVersion=1;s2.preco=15000.0;
s1.codigo="1";s1.descricao="Im\u00F3veis";s1.objectId=32637188;s1.objectVersion=1;
s3.categoriaVO=s0;s3.codigo="GL-1010";s3.descricao="Gol 1000 2001";s3.descricaoCategoria="Ve\u00EDculos";s3.objectId=5517138;s3.objectVersion=11;s3.preco=10000.0;
s0.codigo="3";s0.descricao="Ve\u00EDculos";s0.objectId=16086212;s0.objectVersion=12;
s4.categoriaVO=s0;s4.codigo="MB-1113-80";s4.descricao="MB 1113 1980";s4.descricaoCategoria="Ve\u00EDculos";s4.objectId=8394754;s4.objectVersion=24;s4.preco=50000.0;
s5.categoriaVO=s0;s5.codigo="PL-14005";s5.descricao="Palio 1.4 flex 2006";s5.descricaoCategoria="Ve\u00EDculos";s5.objectId=3225815;s5.objectVersion=211;s5.preco=25678.0;
s6.categoriaVO=s0;s6.codigo="PG406";s6.descricao="PEUGEOT 406";s6.descricaoCategoria="Ve \u00EDculos";s6.objectId=12252743;s6.objectVersion=311;s6.preco= 310000.0;
dwr.engine._remoteHandleCallback('7','0',[s2,s3,null,s4,s5,s6,null]);


dwr.xml section:

...

        <convert match="java.lang.Exception" converter="exception">
            <param name='include' value='message,cause'/>
        </convert>
       
        <convert match="java.lang.StackTraceElement" converter="bean"/>  

        <convert converter="bean" match="br.com.gsp.ramses.cadastros.categoria.CategoriaVO" javascript="Categoria"/>     

        <convert converter="bean" match="br.com.gsp.ramses.cadastros.produto.ProdutoVO" javascript="Produto">
            <param name="include" value="objectId, objectVersion, descricao, preco, codigo, categoriaVO, descricaoCategoria"/>
        </convert>

        <create creator="new" scope="session" javascript="CategoriaServices">
            <param name="class" value="br.com.gsp.ramses.cadastros.categoria.CategoriaHandler "/>
        </create> 

        <create creator="new" scope="session" javascript="ProdutoServices">
            <param name="class" value=" br.com.gsp.ramses.cadastros.produto.ProdutoHandler "/>
        </create>                

...


Enviromnent:

DWR Version 2.0.rc5pre starting.
Servlet Engine: Sun Java System Application Server Platform Edition 9.0_01
Java Version:   1.5.0_10
Java Vendor:    Sun Microsystems Inc.

Java EE 5 Application, using EJB3 Stateless SessionBeans as service façades and JPA entitys (as POJOs and DTOs )..

Can anynone help me?

Thanks advance.


--
+==============+
Oziel Moreira Neto
  blog.oziel.com.br
Cel. 11-8162-7986
+==============+
"Aqueles que passam por nós, não vão sós, não nos deixam sós.
Deixam um pouco de si, levam um pouco de nós."
(Antonie de Saint-Exupéry)
LightInTheBox - Buy quality products at wholesale price