use setObject() to set the Object payload, not setObjectProperty -
which only supports primitive types.


On 13/11/2007, jack <[EMAIL PROTECTED]> wrote:
> *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
>


-- 
James
-------
http://macstrac.blogspot.com/

Open Source SOA
http://open.iona.com

Reply via email to