1 Reply Latest reply on Jan 28, 2013 6:05 AM by asoldano

    No-arg default constructor error when deploying Web Service

    developer251

      Hi all !

      I'm badly stuck with a weird exception that I get when I deploy a Webservice on JBoss As 7.1.1.

       

      The Web Service itself is simple and returns in a method a List of Counters:

       

      @XmlRootElement
      public class Counter implements Serializable {

       

       
      private Counter() {
        
      }

      private Counter(int price) {
                 this.price = price;
        
      }

      private int id;
      private String desc
      private int price;
      . . . .  
      }


      @WebService
      public class CounterWS implements CounterWSItf, Serializable {
      @Inject InfoService service;
       

      @Override
      public  List<Counter>  getCounters() {
             
         return service.getCounters();
      }

       

      However I get the following exception once I deploy it:

       

      Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
      com.telco.model.Counter does not have a no-arg default constructor.
              this problem is related to the following location:
                      at com.telco.model.Counter
                      at private java.util.List com.telco.ws.jaxws_asm.GetCounterssResponse._return
                      at com.telco.ws.jaxws_asm.GetCountersResponse

              at com.sun.xml.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:106)
              at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:466)
              at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:298)
              at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:141)
              at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1157)
              at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:145)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_31]
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_31]
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_31]
              at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_31]
              at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:211) [rt.jar:1.6.0_31]
              at javax.xml.bind.ContextFinder.find(ContextFinder.java:392) [rt.jar:1.6.0_31]
              at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:618) [rt.jar:1.6.0_31]
              at org.apache.cxf.jaxb.JAXBContextCache.createContext(JAXBContextCache.java:260)
              at org.apache.cxf.jaxb.JAXBContextCache.getCachedContextAndSchemas(JAXBContextCache.java:169)
              at org.apache.cxf.jaxb.JAXBDataBinding.createJAXBContextAndSchemas(JAXBDataBinding.java:423)
              at org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:291)
              ... 24 more

       

      As you can see, there is a default constructor in the Counter class. I've tried also removing the other constructor without success.

      By removing the type <Counter> from the List it actually deploys but once I invoke it from the Client, I get another type of Error, that the Counter type is unknown (!!).

       

      Is it a bug or something else I'm missing ?

      Thanks a lot

      Max