I'm building an app that retrieves data with OpenJPA and tries to serialize it in xml or json with CXF/JAXB. I'm using annotations on the domain class to specify both the logical JPA (not physical) and JAXB behavior (with the physical JPA in XML config). In theory I would think this should work, but in my first test I found that CXF didn't serialize the object that I retrieved from JPA.
After some thinking, I thought to write some debug code that prints out the runtime annotations on the class, both for the class of the returned instance, and the class that it's declared as. What I found (because I realized I should have expected this) is that the runtime class didn't have the required annotations that the declared class did. When JPA enhanced the classes, it didn't copy the annotations. My app currently doesn't use build-time enhancement or the javaagent. I can't remember exactly what OpenJPA does in that situation. I think it's still enhancing the class, but on demand. Is this issue with non-copied annotations really an issue, or should I look elsewhere for why CXF isn't serializing my data (I'm asking a similar question on the CXF list)?
