This ticket will present some problem that I encountered using JAXB.
Environment
- OS: Windows 7
- Servlet container : Tomcat 7.X
- JRE: Sun Java 1.6.0_11
- JAXB version: 2.2.1
Stack trace
Trying to deploy a web application containing (SOAP) web services failed with the following stack trace:
WSSERVLET11: failed to parse runtime descriptor: java.lang.reflect.GenericSignatureFormatError at sun.reflect.generics.parser.SignatureParser.error(SignatureParser.java:103) at sun.reflect.generics.parser.SignatureParser.parseSimpleClassTypeSignature(SignatureParser.java:262) at sun.reflect.generics.parser.SignatureParser.parseClassTypeSignatureSuffix(SignatureParser.java:270) at sun.reflect.generics.parser.SignatureParser.parseClassTypeSignature(SignatureParser.java:244) ... at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:147) at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:124) ...
Cause of the exception
One of the web services had as return value a list of enums. The enum was defined something like :
public enum Season { WINTER, SPRING, SUMMER, FALL }
(no default constructor).
In order to fix the problem it must add a no parameter contructor; something like:
public enum Season { WINTER, SPRING, SUMMER, FALL Season() {} }