activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Strachan" <james.strac...@gmail.com>
Subject Re: Can't turn ObjectMessage serialization OFF!!
Date Mon, 15 Jan 2007 18:28:03 GMT
Are you using non-persistent messaging? Otherwise your messages will
get written to disk as part of the serialization effort in the broker,
irrespective of whether or not you are serializing in the transport
layer.


On 1/15/07, magic.moose <maciek@avedya.com> wrote:
>
> Hey all,
>
> AcitveMQ 4.1.0, Jencks 1.1
>
> I'm trying not to serialized ObjectMessage content while using jvm
> transport. I can't force connectionFactory (or something else) to stop
> serializing.
>
> This is how the Spring conf looks like:
>
>         <bean id="connectionFactory"
> class="org.apache.activemq.ActiveMQConnectionFactory">
>                 <property name="brokerURL">
>                         <value>vm://localhost</value>
>                 </property>
>                 <property name="objectMessageSerializationDefered">
>                         <value>true</value>
>                 </property>
>         </bean>
>
>         <bean id="jmsResourceAdapter"
> class="org.apache.activemq.ra.ActiveMQResourceAdapter">
>                 <property name="connectionFactory" ref="connectionFactory"/>
>         </bean>
>
>
>         <bean id="jencks" class="org.jencks.JCAContainer">
>                 <property name="bootstrapContext">
>                         <bean class="org.jencks.factory.BootstrapContextFactoryBean">
>                                 <property name="threadPoolSize" value="5"/>
>                         </bean>
>                 </property>
>                 <property name="resourceAdapter">
>                         <ref bean="jmsResourceAdapter"/>
>                 </property>
>         </bean>
>
>         <bean id="eventQueueConsumer" class="org.jencks.JCAConnector">
>                 <property name="jcaContainer" ref="jencks" />
>
>                 <property name="activationSpec">
>                         <bean class="org.apache.activemq.ra.ActiveMQActivationSpec">
>                                 <property name="destination" value="eventQueue" />
>                                 <property name="destinationType" value="javax.jms.Queue"
/>
>                         </bean>
>                 </property>
>                 <property name="ref" value="dispatcher" />
>         </bean>
>
> <!-- for sending-->
>         <bean id="jmsFactory"
>                 class="org.apache.activemq.pool.PooledConnectionFactory">
>                 <property name="connectionFactory" ref="connectionFactory"/>
>         </bean>
>
>
>         <bean id="eventSender"
>                 class="com.avedya.zapzone2.eventframework.client.EventQueueClient"
>                 singleton="true">
>                 <property name="jmsTemplate">
>                         <bean class="org.springframework.jms.core.JmsTemplate">
>                                 <property name="connectionFactory">
>                                         <ref local="connectionFactory" />
>                                 </property>
>                         </bean>
>                 </property>
>                 <property name="queueName">
>                         <value>eventQueue</value>
>                 </property>
>
>         </bean>
>
> </beans>
>
> The eventSender class uses MessageCreator:
>
>    private class ObjectMessageCreator implements MessageCreator{
>
>                 private Serializable object;
>
>                 public ObjectMessageCreator(Serializable object){
>                         this.object = object;
>                 }
>
>                 public Message createMessage(Session session) throws JMSException {
>                         ObjectMessage msg = session.createObjectMessage();
>                         msg.setObject(object);
>                         return msg;
>                 }
>
>         }
>
> and sends using:
>
>        jmsTemplate.send(queueName,new ObjectMessageCreator(event));
>
> what I get is:
>
> Caused by: java.io.NotSerializableException: javax.mail.internet.MimeMessage
>         at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>         at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>         at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>         at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>         at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>         at java.io.ObjectOutputStream.writeObject(Unknown Source)
>         at
> org.apache.activemq.command.ActiveMQObjectMessage.storeContent(ActiveMQObjectMessage.java:96)
>
> where MimeMessage is a part of serializable Object being sent.
>
> Perhaps I do something wrong. I took me a while to figure out how to force
> resourceAdpater to use given connectionFactory so I know there is a lot of
> things I dont know about ActiveMq. Anyway, seems like setting
> objectMessageSerializationDefered doesnt really do the trick.
>
> I appreciate your help.
> m.
> --
> View this message in context: http://www.nabble.com/Can%27t-turn-ObjectMessage-serialization-OFF%21%21-tf3016083.html#a8375884
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>


-- 

James
-------
http://radio.weblogs.com/0112098/

Mime
View raw message