The glassfish’s wsgen classpath on Glassfish is not by domain, ie. the wsgen tool is not run in the domain class-loader.
When trying to deploy a webservice that returns an entity with a hibernate annotation, I got this following error :
Server logs showed the following trace :
/home/paul/Programs/glassfish-v2-b58g/domains/domain1/applications/j2ee-apps/ear-0.1-SNAPSHOT/lib/entities-0.1-SNAPSHOT.jar(app/model/entities/User.class): warning: Cannot find annotation method 'value()' in type 'org.hibernate.annotations.Fetch': class file for org.hibernate.annotations.Fetch not found Problem encountered during annotation processing; see stacktrace below for more information. java.lang.NullPointerException at com.sun.tools.ws.processor.modeler.annotation.WebServiceAP.isSubtype(WebServiceAP.java:360) ...... SNIP ...... at com.sun.enterprise.management.deploy.DeployThread.run(DeployThread.java:223) error: compilation failed, errors should have been reported Exception occured in J2EEC Phase com.sun.enterprise.deployment.backend.IASDeploymentException: WSGEN FAILED at com.sun.enterprise.webservice.WsUtil.genWSInfo(WsUtil.java:2
Adding the hibernate-annotations.jar file in the glassfish main lib/ directory added the necessary classes to the wsgen classpath.