When a CMR Collection is iterated over an exception gets generated:
A cmr collection may be used only in the transaction in which it was created.
Example:java.util.Collection collection=entityObject.getCMRCollection();
Iterator iterator=collection.iterator();
As the message says, you'll have to iterate over the collection of entities in the same transaction as the the collection was retrieved.
So do this in an SessionBean's method with transaction attribute Required e.g.