Indeed the hint from the error message class or package not found is correct, although not that helpful since the missing class name is not told.
In my case I had a class listed in my persistence.xml, which didn't exist any longer.
To see, where this error message comes from, have a look at Ejb3Configuration.addNamedAnnotatedClasses(...)
there you will find the following:
throw new PersistenceException( getExceptionHeader() + "class or package not found", cnfe );
So the information which class wasn't found is available in the cnfe ClassNotFoundException
but unfortunately it's not propagated to the log file somehow.
To access the information simply put a debug breakpoint there and inspect the cnfe
object.