When testing I noticed that the servet would pick up the messages as they arrived in the queue, but for some reason they would be left there. At the same time the following exception would appear in the server log:
DirectConsumer:Caught Exception delivering messagecom.sun.messaging.jmq.io.Packet cannot be cast to com.sun.messaging.jms.ra.DirectPacket
After doing some investigations I found this notice in the J2EE tutorial: "The Java EE platform specification does not impose strict constraints on how web components should use the JMS API. In the Application Server, a web component can send messages and consume them synchronously but cannot consume them asynchronously".
Switching to synchronous consumption, using a timed receive took care of the problem.