[rabbitmq-discuss] Messaging and Serialization in RabbitMQ?
Simone Busoli
simone.busoli at gmail.com
Tue Jul 5 23:07:35 BST 2011
Putting back the list (please Reply All).
the code you posted is unlikely generating that exception. It's complaining
about an invalid cast from BasicDeliverEventArgs to byte[], and you don't
have such a cast in your code.
On Wed, Jul 6, 2011 at 00:00, Demiss Zike <habtdemis at gmail.com> wrote:
> Sure, I've attached the screen shot of the error.
>
>
> On Tue, Jul 5, 2011 at 4:51 PM, Simone Busoli <simone.busoli at gmail.com>wrote:
>
>> Putting back the list.
>>
>> Any chance to have a proper stack trace of the exception?
>>
>> On Tue, Jul 5, 2011 at 23:46, Demiss Zike <habtdemis at gmail.com> wrote:
>>
>>> My bad, please ignore my last response. It compiles well but gives me the
>>> following run time error:
>>>
>>> Unhandled Exception: System.InvalidCastException: Unable to cast object
>>> of type 'RabbitMQ.Events.BasicDeliverEventArgs' to type 'System[]'.
>>>
>>>
>>>
>>>
>>> On Tue, Jul 5, 2011 at 4:35 PM, Demiss Zike <habtdemis at gmail.com> wrote:
>>>
>>>> It does and take in a byte[] and initializes a Measurement object.
>>>>
>>>>
>>>> On Tue, Jul 5, 2011 at 4:18 PM, Simone Busoli <simone.busoli at gmail.com>wrote:
>>>>
>>>>> Doesn't m2 in your code below contain the deserialized message?
>>>>>
>>>>> On Tue, Jul 5, 2011 at 23:15, Demiss Zike <habtdemis at gmail.com> wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> I'm using c#. I have a serializable class called Measurement and want
>>>>>> to send an object of it. I serialized an object of Measurement and captured
>>>>>> the serialized object as byte[] and published it. My question is how can I
>>>>>> capture the published message (so that I can deserialize and use it)?
>>>>>>
>>>>>> I've included codes on both ends:
>>>>>>
>>>>>> public void publish(byte[] _serializedMsg)
>>>>>> {
>>>>>> // publisher code
>>>>>> ConnectionFactory factory = new ConnectionFactory();
>>>>>> factory.HostName = "localhost";
>>>>>> using (IConnection connection =
>>>>>> factory.CreateConnection())
>>>>>> using (IModel channel = connection.CreateModel()) {
>>>>>> channel.ExchangeDeclare("logs", "fanout");
>>>>>> channel.BasicPublish("logs", queue, null, _serializedMsg);
>>>>>> Console.WriteLine(" Message sent ");
>>>>>> }
>>>>>> }
>>>>>>
>>>>>>
>>>>>>
>>>>>> public void subscribe(string queue)
>>>>>> {
>>>>>> // subscriber code
>>>>>> ConnectionFactory factory = new ConnectionFactory();
>>>>>> factory.HostName = "localhost";
>>>>>> using (IConnection connection =
>>>>>> factory.CreateConnection())
>>>>>> using (IModel channel = connection.CreateModel()) {
>>>>>> channel.ExchangeDeclare("logs", "fanout");
>>>>>>
>>>>>> string queue1 = channel.QueueDeclare();
>>>>>> channel.QueueBind(queue1, "logs", "");
>>>>>> QueueingBasicConsumer consumer = new
>>>>>> QueueingBasicConsumer(channel);
>>>>>> channel.BasicConsume(queue1, true, consumer);
>>>>>>
>>>>>> Console.WriteLine(" Waiting for messages. To exit press
>>>>>> CTRL+C");
>>>>>> while(true) {
>>>>>> BasicDeliverEventArgs ea =
>>>>>> (BasicDeliverEventArgs)consumer.Queue.Dequeue();
>>>>>> byte[] body = ea.Body;
>>>>>> Measurement m2 = new Measurement(20, 23323, 3.3);
>>>>>> m2 = BinarySerialization.BinaryDeSerialize( body );
>>>>>>
>>>>>> Console.WriteLine(" Message received: ");
>>>>>> Console.WriteLine("\nMeasurement ID: {0}", m2.id);
>>>>>> Console.WriteLine("Measurement Time: {0}", m2.time);
>>>>>> Console.WriteLine("Measurement Value: {0}", m2.value);
>>>>>> }
>>>>>> }
>>>>>> }
>>>>>>
>>>>>>
>>>>>> Thanks!
>>>>>> Demi
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> rabbitmq-discuss mailing list
>>>>>> rabbitmq-discuss at lists.rabbitmq.com
>>>>>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20110706/5568ae4b/attachment.htm>
More information about the rabbitmq-discuss
mailing list