AMQ is a jms product, so it only supports javax.jms.MessageListener.  If you 
want to use another message listener interface you need a resource adapter that 
sends messages to it.

thanks
david jencks

On Jun 22, 2011, at 1:51 AM, Shawn Jiang wrote:

> Forwarding this to geronimo list.
> 
> ---------- Forwarded message ----------
> From: Shawn Jiang <[email protected]>
> Date: Wed, Jun 22, 2011 at 4:50 PM
> Subject: Activemq does not support customized message listener ?
> To: [email protected]
> 
> 
> In EJB31 spec: 5.4.2 The Required Message Listener Interface.   It said that 
> MDB should support customized message listener.  Now I'm trying to enable  
> MDB custom listener in geronimo.   But I find hard coded 
> javax.jms.MessageListener in ActiveMQ code, it make it impossible to add the 
> support for geronimo/openejb   without updating code in activemq side.    
> Thoughts ?
> 
> 1, 
> org.apache.activemq.ra.MessageEndpointProxy.MessageEndpointProxy(MessageEndpoint)
>  public MessageEndpointProxy(MessageEndpoint endpoint) {
>         if (!(endpoint instanceof MessageListener)) {
>             throw new IllegalArgumentException("MessageEndpoint is not a 
> MessageListener");
>         }
>         messageListener = endpoint;
>         proxyID = getID();
>         this.endpoint = endpoint;
>     }
> 
> 
> 2, org.apache.activemq.ra.ActiveMQEndpointWorker
> 
> public class ActiveMQEndpointWorker {
> ...
>     static {
>         try {
>             ON_MESSAGE_METHOD = MessageListener.class.getMethod("onMessage", 
> new Class[] {
>                 Message.class
>             });
> ...
> }
> 
> 
> 
> -- 
> Shawn
> 
> 
> 
> -- 
> Shawn

Reply via email to