You have not posted any configuration so its hard to say for sure but are you trying to container managed transactions? If you are that will cause the problem. If not there are a couple other things to look at:
1. You can the
servlet 2.4 spec in your web.xml
2. If you want to use a higher servlet spec you can set meta-data complete = true
The reason for this is because of the annotation configuration feature introduced with Servlet 2.5 spec. If it finds a @PersistenceContext annotation Glassfish tries to build the persistence context using a container managed entity manager factory. This obviously would not work for RESOURCE_LOCAL. By adding this extra attribute you are telling the container to disable
all annotations specified in Servlet 2.5 spec. You can still use those annotations though as Spring will manage it not the container.
3. The last option is to not use RESOURCE_LOCAL but rather configure things to be JTA managed instead.