3 Replies Latest reply: Dec 1, 2011 3:19 AM by Rohit . Kumar RSS

    lcds 3.1 hibernateannotations problem

    ecchuckles

      I'm trying to use hibernateannotations with lcds 3.1 and flexbuilder 4.5.1 and I'm having problem getting the fill operation to work, I'm not sure what I'm doing wrong

      I'm getting this error back from lcds:

      [LCDS]Exception executing assembler operation.  incomingMessage: Flex Message (flex.data.messages.DataMessageExt)

          operation = fill

          id = null

          clientId = C1DFF41D-2A96-1A63-E293-F4CB0FEEE405

          correlationId =

          destination = WrUesdDataManagerService

          messageId = 9861843C-94CA-9656-D044-F4CB1029A6AC

          timestamp = 1322661908887

          timeToLive = 0

          body =

          [

            [[], getAllSorted, [Ljava.lang.Object;@7d6b4be5]

          ]

          hdr(DSId) = D8A3C599-C32F-EA78-D64B-978BE213BFC3

          hdr(DSEndpoint) = my-rtmp

          exception: java.lang.ClassCastException: flex.messaging.io.ArrayCollection cannot be cast to java.lang.String

          at flex.data.assemblers.HibernateAssembler.fill(HibernateAssembler.java:1034)

          at flex.data.assemblers.HibernateAssembler.fill(HibernateAssembler.java:957)

          at flex.data.adapters.JavaAdapter.invokeFillOperation(JavaAdapter.java:996)

          at flex.data.adapters.JavaAdapter.invoke(JavaAdapter.java:622)

      ...

       

      my actionscript looks like this:

      var param:ArrayCollection = new ArrayCollection();

                      param.addItem(jobs);

                      param.addItem("getAllSorted");

                      param.addItem([]);

                      getAllResult.token = WrUesdDataService.fill(param);

      and I've went through commenting out the various params like jobs and [] but I still get the same error

      the using lcds 3.1 doc says fills should like this

      myService.fill(myCollection, "flex:hql", "from Person p where p.firstName = ? ", ["Paul"]);

      but the compiler doesn't that syntax.

       

      I created the service by importing it into the data model and generating the code.

      here is my data-managementconfig.xml

      <?xml version="1.0" encoding="UTF-8"?>

      <service id="data-service"

          class="flex.data.DataService">

       

          <adapters>

              <adapter-definition id="actionscript" class="flex.data.adapters.ASObjectAdapter" default="true"/>

              <adapter-definition id="java-dao" class="flex.data.adapters.JavaAdapter"/>

          </adapters>

       

              <default-channels>

              <channel ref="my-rtmp"/>

          </default-channels>

      <destination id="WrUesdDataManagerService">

             <adapter ref="java-dao" />

             <properties>

      <source>flex.data.assemblers.HibernateAnnotationsAssembler</source>

             <item-class>gov.llnl.castlewr.model.WrUesdData</item-class>

             <scope>application</scope>

             <metadata>

            <identity property="uesdId"/>

            </metadata>

            <server>

              <fill-configuration>

                      <use-query-cache>false</use-query-cache>

                      <allow-hql-queries>true</allow-hql-queries>

                  </fill-configuration>

            </server>

            </properties>

            </destination>

       

      </service>

       

      any suggestions?