*I have use a ActiveMQObjectMessage,please look at the code below:*
public class OrderMessageConverter implements MessageConverter { /* * (non-Javadoc) * * @see org.springframework.jms.support.converter.MessageConverter#toMessage( java.lang.Object, * javax.jms.Session) */ public Message toMessage(Object obj, Session session) throws JMSException { //check Type if (obj instanceof Order) { ActiveMQObjectMessage objMsg = (ActiveMQObjectMessage) session.createObjectMessage(); Map<String, Order> map = new HashMap<String, Order>(); map.put("Order", (Order) obj); objMsg.setObjectProperty("Map", map); return objMsg; } else { throw new JMSException("Object:[" + obj + "] is not Order"); } } /* * (non-Javadoc) * * @see org.springframework.jms.support.converter.MessageConverter#fromMessage( javax.jms.Message) */ public Object fromMessage(Message msg) throws JMSException { if (msg instanceof ObjectMessage) { return ((Map) ((ObjectMessage) msg).getObjectProperty("Map")).get("Order"); } else { throw new JMSException("Msg:[" + msg + "] is not Map"); } } } 2007/11/13, James Strachan <[EMAIL PROTECTED]>: > > looks like you are putting a non primitive type in a property or > MapMessage which is not allowed in JMS. Try use an ObjectMessage > > On 13/11/2007, jack <[EMAIL PROTECTED]> wrote: > > *That's all:* > > > > java.io.IOException: Object is not a primitive: > > [EMAIL PROTECTED] > > at org.apache.activemq.util.MarshallingSupport.marshalPrimitive( > > MarshallingSupport.java:132) > > at org.apache.activemq.util.MarshallingSupport.marshalPrimitiveMap( > > MarshallingSupport.java:31) > > at org.apache.activemq.util.MarshallingSupport.marshalPrimitive( > > MarshallingSupport.java:124) > > at org.apache.activemq.util.MarshallingSupport.marshalPrimitiveMap( > > MarshallingSupport.java:31) > > at org.apache.activemq.command.Message.beforeMarshall(Message.java:190) > > at org.apache.activemq.openwire.v2.MessageMarshaller.looseMarshal( > > MessageMarshaller.java:243) > > at > org.apache.activemq.openwire.v2.ActiveMQMessageMarshaller.looseMarshal( > > ActiveMQMessageMarshaller.java:111) > > at > > > org.apache.activemq.openwire.v2.ActiveMQObjectMessageMarshaller.looseMarshal > > (ActiveMQObjectMessageMarshaller.java:111) > > at org.apache.activemq.openwire.OpenWireFormat.marshal( > OpenWireFormat.java > > :167) > > at org.apache.activemq.store.jdbc.JDBCMessageStore.addMessage( > > JDBCMessageStore.java:59) > > at org.apache.activemq.store.memory.MemoryTransactionStore.addMessage( > > MemoryTransactionStore.java:224) > > at org.apache.activemq.store.memory.MemoryTransactionStore$1.addMessage > ( > > MemoryTransactionStore.java:117) > > at org.apache.activemq.broker.region.Queue.sendMessage(Queue.java:333) > > at org.apache.activemq.broker.region.Queue.send(Queue.java:326) > > at org.apache.activemq.broker.region.AbstractRegion.send( > > AbstractRegion.java:292) > > at org.apache.activemq.broker.region.RegionBroker.send( > RegionBroker.java > > :382) > > at org.apache.activemq.broker.TransactionBroker.send( > TransactionBroker.java > > :193) > > at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:126) > > at org.apache.activemq.broker.CompositeDestinationBroker.send( > > CompositeDestinationBroker.java:98) > > at org.apache.activemq.broker.MutableBrokerFilter.send( > > MutableBrokerFilter.java:136) > > at org.apache.activemq.broker.TransportConnection.processMessage( > > TransportConnection.java:498) > > at org.apache.activemq.command.ActiveMQMessage.visit( > ActiveMQMessage.java > > :604) > > at org.apache.activemq.broker.TransportConnection.service( > > TransportConnection.java:294) > > at org.apache.activemq.broker.TransportConnection$1.onCommand( > > TransportConnection.java:185) > > at org.apache.activemq.transport.ResponseCorrelator.onCommand( > > ResponseCorrelator.java:95) > > at org.apache.activemq.transport.TransportFilter.onCommand( > > TransportFilter.java:65) > > at org.apache.activemq.transport.vm.VMTransport.syncOneWay( > VMTransport.java > > :96) > > at org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java > :83) > > at org.apache.activemq.transport.MutexTransport.oneway( > MutexTransport.java > > :47) > > at org.apache.activemq.transport.ResponseCorrelator.asyncRequest( > > ResponseCorrelator.java:69) > > at org.apache.activemq.transport.ResponseCorrelator.request( > > ResponseCorrelator.java:74) > > at org.apache.activemq.ActiveMQConnection.syncSendPacket( > > ActiveMQConnection.java:1175) > > at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1551) > > at org.apache.activemq.ActiveMQMessageProducer.send( > > ActiveMQMessageProducer.java:465) > > at org.apache.activemq.ActiveMQMessageProducer.send( > > ActiveMQMessageProducer.java:356) > > at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java > :537) > > at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java > :513) > > at org.springframework.jms.core.JmsTemplate$2.doInJms(JmsTemplate.java > :479) > > at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java > :430) > > at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:477) > > at org.springframework.jms.core.JmsTemplate.convertAndSend( > JmsTemplate.java > > :558) > > at > org.springside.bookstore.components.activemq.OrderMessageProducer.send( > > OrderMessageProducer.java:27) > > at org.springside.bookstore.service.order.OrderManager.notifyOrder( > > OrderManager.java:96) > > at org.springside.bookstore.service.order.OrderManager.placeOrder( > > OrderManager.java:62) > > at > > > org.springside.bookstore.service.order.OrderManager$$FastClassByCGLIB$$e36986ee.invoke > > (<generated>) > > at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149) > > at > > > org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint > > (Cglib2AopProxy.java:714) > > at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed > ( > > ReflectiveMethodInvocation.java:162) > > at > > > org.springframework.transaction.interceptor.TransactionInterceptor.invoke( > > TransactionInterceptor.java:107) > > at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed > ( > > ReflectiveMethodInvocation.java:185) > > at > > > org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept > > (Cglib2AopProxy.java:652) > > at > > > org.springside.bookstore.service.order.OrderManager$$EnhancerByCGLIB$$97104372.placeOrder > > (<generated>) > > at org.springside.bookstore.web.shop.OrderAction.newOrder( > OrderAction.java > > :83) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at sun.reflect.NativeMethodAccessorImpl.invoke( > > NativeMethodAccessorImpl.java:39) > > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > > DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at org.apache.struts.actions.DispatchAction.dispatchMethod( > > DispatchAction.java:270) > > at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java > > :187) > > at org.apache.struts.action.RequestProcessor.processActionPerform( > > RequestProcessor.java:431) > > at org.apache.struts.action.RequestProcessor.process( > RequestProcessor.java > > :236) > > at org.apache.struts.action.ActionServlet.process(ActionServlet.java > :1196) > > at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java > :432) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > > ApplicationFilterChain.java:269) > > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > > ApplicationFilterChain.java:188) > > at org.extremecomponents.table.filter.AbstractExportFilter.doFilter( > > AbstractExportFilter.java:49) > > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > > ApplicationFilterChain.java:215) > > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > > ApplicationFilterChain.java:188) > > at > > > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal > > (OpenSessionInViewFilter.java:174) > > at org.springframework.web.filter.OncePerRequestFilter.doFilter( > > OncePerRequestFilter.java:77) > > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > > ApplicationFilterChain.java:215) > > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > > ApplicationFilterChain.java:188) > > at > org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal( > > CharacterEncodingFilter.java:78) > > at org.springframework.web.filter.OncePerRequestFilter.doFilter( > > OncePerRequestFilter.java:77) > > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > > ApplicationFilterChain.java:215) > > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > > ApplicationFilterChain.java:188) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:264) > > at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke( > > FilterSecurityInterceptor.java:107) > > at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter( > > FilterSecurityInterceptor.java:72) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:274) > > at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter( > > ExceptionTranslationFilter.java:110) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:274) > > at > org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter > > (AnonymousProcessingFilter.java:125) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:274) > > at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter( > > RememberMeProcessingFilter.java:142) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:274) > > at > > > org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter > ( > > SecurityContextHolderAwareRequestFilter.java:81) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:274) > > at org.acegisecurity.ui.AbstractProcessingFilter.doFilter( > > AbstractProcessingFilter.java:217) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:274) > > at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java > :106) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:274) > > at > org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter( > > HttpSessionContextIntegrationFilter.java:229) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:274) > > at org.acegisecurity.util.FilterChainProxy.doFilter( > FilterChainProxy.java > > :148) > > at org.acegisecurity.util.FilterToBeanProxy.doFilter( > FilterToBeanProxy.java > > :98) > > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > > ApplicationFilterChain.java:215) > > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > > ApplicationFilterChain.java:188) > > at org.apache.catalina.core.StandardWrapperValve.invoke( > > StandardWrapperValve.java:213) > > at org.apache.catalina.core.StandardContextValve.invoke( > > StandardContextValve.java:174) > > at org.apache.catalina.core.StandardHostValve.invoke( > StandardHostValve.java > > :127) > > at org.apache.catalina.valves.ErrorReportValve.invoke( > ErrorReportValve.java > > :117) > > at org.apache.catalina.core.StandardEngineValve.invoke( > > StandardEngineValve.java:108) > > at org.apache.catalina.connector.CoyoteAdapter.service( > CoyoteAdapter.java > > :151) > > at org.apache.coyote.http11.Http11Processor.process( > Http11Processor.java > > :874) > > at > > > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection > > (Http11BaseProtocol.java:665) > > at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket( > > PoolTcpEndpoint.java:528) > > at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt( > > LeaderFollowerWorkerThread.java:81) > > at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run( > > ThreadPool.java:689) > > at java.lang.Thread.run(Thread.java:619) > > 2007-11-13 17:27:14,937 ERROR [/BookStore2/shop/order.do] - > <Uncategorized > > exception occured during JMS processing; nested exception is > > javax.jms.JMSException: Failed to broker message: > > ID:123456-8f2a9a43-1955-1194945972046-3:1:1:1:1 in container: > > java.io.IOException: Object is not a primitive: > > [EMAIL PROTECTED]> > > javax.servlet.ServletException: Uncategorized exception occured during > JMS > > processing; nested exception is javax.jms.JMSException: Failed to broker > > message: ID:123456-8f2a9a43-1955-1194945972046-3:1:1:1:1 in container: > > java.io.IOException: Object is not a primitive: > > [EMAIL PROTECTED] > > at org.apache.struts.action.RequestProcessor.processException( > > RequestProcessor.java:535) > > at org.apache.struts.action.RequestProcessor.processActionPerform( > > RequestProcessor.java:433) > > at org.apache.struts.action.RequestProcessor.process( > RequestProcessor.java > > :236) > > at org.apache.struts.action.ActionServlet.process(ActionServlet.java > :1196) > > at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java > :432) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > > ApplicationFilterChain.java:269) > > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > > ApplicationFilterChain.java:188) > > at org.extremecomponents.table.filter.AbstractExportFilter.doFilter( > > AbstractExportFilter.java:49) > > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > > ApplicationFilterChain.java:215) > > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > > ApplicationFilterChain.java:188) > > at > > > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal > > (OpenSessionInViewFilter.java:174) > > at org.springframework.web.filter.OncePerRequestFilter.doFilter( > > OncePerRequestFilter.java:77) > > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > > ApplicationFilterChain.java:215) > > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > > ApplicationFilterChain.java:188) > > at > org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal( > > CharacterEncodingFilter.java:78) > > at org.springframework.web.filter.OncePerRequestFilter.doFilter( > > OncePerRequestFilter.java:77) > > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > > ApplicationFilterChain.java:215) > > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > > ApplicationFilterChain.java:188) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:264) > > at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke( > > FilterSecurityInterceptor.java:107) > > at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter( > > FilterSecurityInterceptor.java:72) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:274) > > at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter( > > ExceptionTranslationFilter.java:110) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:274) > > at > org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter > > (AnonymousProcessingFilter.java:125) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:274) > > at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter( > > RememberMeProcessingFilter.java:142) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:274) > > at > > > org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter > ( > > SecurityContextHolderAwareRequestFilter.java:81) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:274) > > at org.acegisecurity.ui.AbstractProcessingFilter.doFilter( > > AbstractProcessingFilter.java:217) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:274) > > at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java > :106) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:274) > > at > org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter( > > HttpSessionContextIntegrationFilter.java:229) > > at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter( > > FilterChainProxy.java:274) > > at org.acegisecurity.util.FilterChainProxy.doFilter( > FilterChainProxy.java > > :148) > > at org.acegisecurity.util.FilterToBeanProxy.doFilter( > FilterToBeanProxy.java > > :98) > > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > > ApplicationFilterChain.java:215) > > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > > ApplicationFilterChain.java:188) > > at org.apache.catalina.core.StandardWrapperValve.invoke( > > StandardWrapperValve.java:213) > > at org.apache.catalina.core.StandardContextValve.invoke( > > StandardContextValve.java:174) > > at org.apache.catalina.core.StandardHostValve.invoke( > StandardHostValve.java > > :127) > > at org.apache.catalina.valves.ErrorReportValve.invoke( > ErrorReportValve.java > > :117) > > at org.apache.catalina.core.StandardEngineValve.invoke( > > StandardEngineValve.java:108) > > at org.apache.catalina.connector.CoyoteAdapter.service( > CoyoteAdapter.java > > :151) > > at org.apache.coyote.http11.Http11Processor.process( > Http11Processor.java > > :874) > > at > > > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection > > (Http11BaseProtocol.java:665) > > at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket( > > PoolTcpEndpoint.java:528) > > at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt( > > LeaderFollowerWorkerThread.java:81) > > at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run( > > ThreadPool.java:689) > > at java.lang.Thread.run(Thread.java:619) > > > > > > > > > > 2007/11/13, James Strachan <[EMAIL PROTECTED]>: > > > > > > could you provide a full stack trace please? > > > > > > On 13/11/2007, jack <[EMAIL PROTECTED]> wrote: > > > > Hi: > > > > > > > > I'm a Chinese user, I'm very glad to write to you. Now I have a > question > > > > about the activemq, when I want to store the message to > > > > database, always have a exception:java.io.IOException: Object is not > a > > > > primitive: [EMAIL PROTECTED] > > > > .So please help to tell me the reason of the problem.Thank you very > > > much! > > > > > > > > > > > > -- > > > > JackGray > > > > > > > > > > > > > -- > > > James > > > ------- > > > http://macstrac.blogspot.com/ > > > > > > Open Source SOA > > > http://open.iona.com > > > > > > > > > > > -- > > JackGray > > > > > -- > James > ------- > http://macstrac.blogspot.com/ > > Open Source SOA > http://open.iona.com > -- JackGray