I have similar issue with my MDB. I also got such exception, but strange thing that on my class I have implements javax.jmx.MessageListener.
After some debugging and looking in source code of EJB3 probably I found the cause of problem. this exception is thrown from
ArrayList list = ProxyFactoryHelper.getBusinessInterfaces(clazz);
if (list.size() > 1 || list.size() == 0) throw new RuntimeException("unable to determine messagingType interface for MDB");
messagingType = list.get(0);
As you see it gets all implemented interfaces of your class (and don't get interfaces of parent class probably) and if it is empty (as in your case) or if it is more than one interface on class (as in my case, because I have another interface on my class) exception is thrown.
I will create issue in jira.
We had the same problem, but adding
to the MessageDriven annotation fixes it.
It's what the spec requires...