1 Reply Latest reply on Jan 17, 2013 5:44 PM by tcunning

    Exception in executing buildin action - ObjectToCSVString

    amr.ry

      Hi,

       

      I’m newbie in the jboss esb. I am getting exception while processing message by buildin Action – ObjectToCSVString

       

      My jboss-esb.xml –

       

      <?xml version="1.0"?>

      <jbossesb parameterReloadSecs="5"

      xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">

      <providers>

        <fs-provider name="FSProv1">

         <fs-bus busid="FS001">

          <fs-message-filter directory="D:/test" error-delete="false"

           error-directory="D:\Error" error-suffix=".IN_ERROR"

           input-suffix=".xml" post-delete="false" post-directory="D:/Test2"

           post-suffix=".java" work-suffix=".esbWorking"/>

         </fs-bus>

        </fs-provider>

      </providers>

      <services>

        <service category="ACat" description="test servive1"

         invmScope="GLOBAL" name="testServ1">

         <listeners>

          <fs-listener busidref="FS001" is-gateway="true" name="AList1"/>

         </listeners>

         <actions mep="OneWay">

          <action class="org.jboss.soa.esb.actions.SystemPrintln" name="test print">

           <property name="message" value="%%%%%%%%%%%%% [transform_XML2POJO] Message before transformation"/>

          </action>

          <action class="org.jboss.soa.esb.smooks.SmooksAction" name="transform">

           <property name="smooksConfig" value="/smooks-res.xml"/>

           <property name="resultType" value="JAVA"/>

          </action>

          <action class="org.jboss.soa.esb.actions.SystemPrintln" name="print-after">

           <property name="message" value="%%%%%%%%%%%% * [transform_XML2POJO] Message after transformation"/>

          </action>

          <action class="com.test.MyAction" name="action1" process="displayMessage"/>

          <action

           class="org.jboss.soa.esb.actions.converters.ObjectToCSVString" name="makecsvstr">

           <property name="bean-properties" value="userName,firstName,lastName,state"/>

          </action>

          <action class="org.jboss.soa.esb.actions.SystemPrintln" name="print-after-csv">

           <property name="message" value="%%%%%%%%%%%% ***** [transform_XML2POJO] Message after CSV transformation"/>

          </action>

         </actions>

        </service>

      </services>

      </jbossesb>

       

      17:55:32,570 INFO  [QuartzScheduler] Scheduler ESBScheduler:ANewProj.esb_$_NON_CLUSTERED started.

      17:56:02,665 INFO  [STDOUT] %%%%%%%%%%%%% [transform_XML2POJO] Message before transformation:

      17:56:02,665 INFO  [STDOUT] [<Customer userName="Anuvab sonu" firstName="sonu babu" lastName="Maiti" state="WB"/>].

      17:56:02,780 INFO  [STDOUT] %%%%%%%%%%%% * [transform_XML2POJO] Message after transformation:

      17:56:02,780 INFO  [STDOUT] [{customer=Anuvab sonu,sonu babu,Maiti,WB}].

      17:56:02,780 INFO  [STDOUT] Body::::::: {customer=Anuvab sonu,sonu babu,Maiti,WB}

      17:56:02,780 ERROR [ObjectToCSVString] Bean method: getUserName not found/accessible on message object java.util.HashMap

      1. java.lang.NoSuchMethodException: java.util.HashMap.getUserName()

            at java.lang.Class.getMethod(Class.java:1622)

            at org.jboss.soa.esb.actions.converters.ObjectToCSVString.process(ObjectToCSVString.java:143)

            at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:633)

            at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:585)

            at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:419)

            at org.jboss.soa.esb.listeners.message.MessageAwareListener$TransactionalRunner.run(MessageAwareListener.java:548)

            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)

            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

            at java.lang.Thread.run(Thread.java:722)

      17:56:02,780 ERROR [ObjectToCSVString] Bean method: getFirstName not found/accessible on message object java.util.HashMap

      1. java.lang.NoSuchMethodException: java.util.HashMap.getFirstName()

            at java.lang.Class.getMethod(Class.java:1622)

            at org.jboss.soa.esb.actions.converters.ObjectToCSVString.process(ObjectToCSVString.java:143)

            at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:633)

            at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:585)

            at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:419)

            at org.jboss.soa.esb.listeners.message.MessageAwareListener$TransactionalRunner.run(MessageAwareListener.java:548)

            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)

            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

            at java.lang.Thread.run(Thread.java:722)

      17:56:02,780 ERROR [ObjectToCSVString] Bean method: getLastName not found/accessible on message object java.util.HashMap

      1. java.lang.NoSuchMethodException: java.util.HashMap.getLastName()

            at java.lang.Class.getMethod(Class.java:1622)

            at org.jboss.soa.esb.actions.converters.ObjectToCSVString.process(ObjectToCSVString.java:143)

            at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:633)

            at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:585)

            at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:419)

            at org.jboss.soa.esb.listeners.message.MessageAwareListener$TransactionalRunner.run(MessageAwareListener.java:548)

            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)

            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

            at java.lang.Thread.run(Thread.java:722)

      17:56:02,780 ERROR [ObjectToCSVString] Bean method: getState not found/accessible on message object java.util.HashMap

      1. java.lang.NoSuchMethodException: java.util.HashMap.getState()

            at java.lang.Class.getMethod(Class.java:1622)

            at org.jboss.soa.esb.actions.converters.ObjectToCSVString.process(ObjectToCSVString.java:143)

            at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:633)

            at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:585)

            at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:419)

            at org.jboss.soa.esb.listeners.message.MessageAwareListener$TransactionalRunner.run(MessageAwareListener.java:548)

            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)

            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

            at java.lang.Thread.run(Thread.java:722)

      17:56:02,780 INFO  [STDOUT] %%%%%%%%%%%% ***** [transform_XML2POJO] Message after CSV transformation:

      17:56:02,780 INFO  [STDOUT] [<no-such-property>,<no-such-property>,<no-such-property>,<no-such-property>].

       

      Please suggest how to resolve this. Please let me know if you need any more information.

       

      Thanks and Regards,

        • 1. Re: Exception in executing buildin action - ObjectToCSVString
          tcunning

          17:56:02,780 ERROR [ObjectToCSVString] Bean method: getUserName not found/accessible on message object java.util.HashMap

          1. java.lang.NoSuchMethodException: java.util.HashMap.getUserName()

           

           

          The problem here is that ObjectToCSVString expects that the message payload object is a bean.        Your message payload in this instance is a HashMap, and ObjectToCSVString is looking for a bean with a "getUserName" method.

           

          I'd configure your Smooks transformation so that you end up with a bean in the payload.