camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Glen Mazza <glen.ma...@gmail.com>
Subject Re: AW: Sending POJOs on Message Queues?
Date Tue, 07 Sep 2010 00:07:09 GMT
Thanks, Christian.  It turned out I do need to have the JAXB objects 
implement the Serializable marker interface (like here[1], but I didn't 
need toString() as it suggests) if I'm going to be sending them or 
reading them from a jms queue.  But I don't need Serializable if I'm 
using the "direct" component.

I'll check the soap component next.

Glen

[1] 
http://stackoverflow.com/questions/1513972/how-to-generate-a-java-class-which-implements-serializable-interface-from-xsd-usi

Schneider Christian wrote:
> Hi Glen,
>
> if you use jaxb then your classes do not have to implement Serializable. Instead they
of course need to be serializeable by jaxb.
>
> Btw. if you want to call a webservice with the jaxb object (Seems so as you add the soap
by using xslt) then you should take a look at the camel soap dataformat. http://camel.apache.org/soap.html
>
>
>
> Greetings
>
> Christian
>  
>
>
>
>
> Christian Schneider
> Informationsverarbeitung 
> Business Solutions
> Handel und Dispatching
>
> Tel : +49-(0)721-63-15482
>
> EnBW Systeme Infrastruktur Support GmbH
> Sitz der Gesellschaft: Karlsruhe
> Handelsregister: Amtsgericht Mannheim ­ HRB 108550
> Vorsitzender des Aufsichtsrats: Dr. Bernhard Beck
> Geschäftsführer: Jochen Adenau, Hans-Günther Meier
>
>
> -----Ursprüngliche Nachricht-----
> Von: Glen Mazza [mailto:glen.mazza@gmail.com] 
> Gesendet: Montag, 6. September 2010 16:15
> An: users@camel.apache.org
> Betreff: Re: Sending POJOs on Message Queues?
>
> But, just to confirm, do I need to make the JAXB objects serializable if 
> I plan on placing them on a queue or reading them from a queue?  If 
> that's the case (makes sense), I will update the Camel JAXB page to 
> highlight that--it presently doesn't say anything about serializability.
>
> I'm trying to practice working with JAXB, e.g.,
>
>       from("jms:queue:numbersToDouble")
>       .marshal(jaxbFormat)
>       .to("xslt://AddSOAPEnvelope.xsl")
>       .to(CXF_URI)
>
> One more thing--if I needed to make the JAXB object serializable for it 
> to work on a queue but didn't (or couldn't) do so, what could I replace 
> "from("jms:queue:numbersToDouble")" above with to start the route?  The 
> "direct" component?
>
> Thanks,
> Glen
>
>
> Charles Moulliard wrote:
>   
>> Hi Glen,
>>
>> Using Camel, you can use marshal() or unmarshal() to transform objects -->
>> XML or XML --> objects
>>
>> http://camel.apache.org/jaxb.html
>>
>> Regards,
>>
>> Charles Moulliard
>>
>> Senior Enterprise Architect (J2EE, .NET, SOA)
>> Apache Camel - Karaf - ServiceMix Committer
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> Blog : http://cmoulliard.blogspot.com |  Twitter :
>> http://twitter.com/cmoulliard
>> Linkedin : http://www.linkedin.com/in/charlesmoulliard | Skype: cmoulliard
>>
>>
>> On Mon, Sep 6, 2010 at 2:51 PM, Glen Mazza <glen.mazza@gmail.com> wrote:
>>
>>   
>>     
>>> Oh!  I was thinking of sending the POJO to the queue where it would be
>>> subsequently read and marshalled into XML, but I can have the client-side
>>> marshal into XML and send the XML to the queue instead.  Makes sense...
>>>
>>> Thanks again,
>>> Glen
>>>
>>>
>>> Tarjei Huse wrote:
>>>
>>>     
>>>       
>>>> On 09/06/2010 02:35 PM, Glen Mazza wrote:
>>>>
>>>>
>>>>       
>>>>         
>>>>> No, it's not serializable, but I believe with some effort I can make
>>>>> it so (The class is JAXB-generated  to support a web service call;
>>>>> JAXB has some extensions to allow for serializability).  Right now I'm
>>>>> trying to get the JAXB DataFormat to work (after sending the object to
>>>>> the queue I plan on marshalling it to XML) just for the sake of seeing
>>>>> JAXB working.
>>>>>
>>>>> @XmlAccessorType(XmlAccessType.FIELD)
>>>>> @XmlType(name = "", propOrder = {
>>>>>   "numberToDouble"
>>>>> })
>>>>> @XmlRootElement(name = "DoubleIt")
>>>>> public class DoubleIt {
>>>>>   protected int numberToDouble;
>>>>>   ... setter and getter for above...
>>>>> }
>>>>>
>>>>> I can look into JSON and/or Protobuf next -- is it primarily speed, or
>>>>> ease-of-use (don't have to worry about making the class serializable),
>>>>> or smaller message size that you recommend those other formats?
>>>>>
>>>>>
>>>>>         
>>>>>           
>>>> In my experience using a format that is not dependent on both the client
>>>> and server having the same version of the java object class makes it far
>>>> easier to do updates and deployments. If you got an xml format that
>>>> works that may fit the bill just fine.
>>>>
>>>> Another bonus is that you can use other languages to process the objects
>>>> if needed.
>>>>
>>>> Regards,
>>>> Tarjei
>>>>
>>>>
>>>>
>>>>       
>>>>         
>>>>> Thanks,
>>>>> Glen
>>>>>
>>>>> Tarjei Huse wrote:
>>>>>
>>>>>
>>>>>         
>>>>>           
>>>>>> Hi,
>>>>>> On 09/06/2010 02:00 PM, Glen Mazza wrote:
>>>>>>
>>>>>>
>>>>>>           
>>>>>>             
>>>>>>> Hello, I'm new to ActiveMQ messaging queues and unsure if I can
place
>>>>>>> and subsequently read POJO's from them.  I have no problems getting
>>>>>>> Strings to work it's just using POJO's that is creating the problem
>>>>>>> for me.
>>>>>>>
>>>>>>>
>>>>>>>             
>>>>>>>               
>>>>>> You should be able to send Serializable objects through the queues,
but
>>>>>> I would like to suggest you look into other serialization methods
like
>>>>>> Protobufs or JSON.
>>>>>>
>>>>>> Is DoubleIt serializable?
>>>>>>
>>>>>> Regards,
>>>>>> Tarjei
>>>>>>
>>>>>>
>>>>>>           
>>>>>>             
>>>>       
>>>>         
>>>     
>>>       
>>   
>>     
>
>
>   


Mime
View raw message