Hi,

Tuscany follows the JAXB default Java/XML mapping rules for java beans without 
annotations. So, the Employee class needs to have a default no-arg constructor. 

There are quite a few tests using complex types, see: 
https://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/itest/databindings/

Thanks,
Raymond 


From: Lakshman Mukkamalla 
Sent: Monday, January 05, 2009 6:19 PM
To: [email protected] 
Subject: IllegalAnnotationsException: does not have a no-arg default constructor


Hi all,
     I have a simple calculator soap sample that has a method like the 
following:
public void setEmployee(Employee e){
        System.out.println(e.getName()+"##"+e.getId());
    }
When I deploy this application I have the following exception. From the cause 
of the exception it looks like tuscany is expecting a default constructor for 
the Employee class but in the above sample Employee has a constructor with some 
arguments but no default constructor. The question that I had for the tuscany 
team is that, does the Tuscany SOAP binding require that all the JAVA classes 
*MUST* have a default constructor for SOAP service to work.? And one another 
question that I have is, are there any tuscany samples that deal with complex 
JAVA class as the method parameters or return types in the service exposed as a 
SOAP service?

SEVERE: Exception starting filter tuscany
org.osoa.sca.ServiceRuntimeException: 
java.lang.reflect.InvocationTargetException
    at 
org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADomain.java:276)
    at 
org.apache.tuscany.sca.host.embedded.SCADomain.newInstance(SCADomain.java:83)
    at 
org.apache.tuscany.sca.host.webapp.WebAppServletHost.init(WebAppServletHost.java:218)
    at 
org.apache.tuscany.sca.host.webapp.TuscanyServletFilter.init(TuscanyServletFilter.java:52)
    at 
org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
    at 
org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
    at 
org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
    at 
org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4356)
    at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:829)
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:718)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1147)
    at 
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at 
org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADomain.java:258)
    ... 30 more
Caused by: org.osoa.sca.ServiceRuntimeException: 
org.osoa.sca.ServiceRuntimeException: 
com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of 
IllegalAnnotationExceptions
com.cisco.uc.apiframework.samples.simpleCalculatorSOAP.Employee does not have a 
no-arg default constructor.
    this problem is related to the following location:
        at com.cisco.uc.apiframework.samples.simpleCalculatorSOAP.Employee

    at 
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.analyseProblems(DefaultSCADomain.java:307)
    at 
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(DefaultSCADomain.java:239)
    at 
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.<init>(DefaultSCADomain.java:120)
    at 
org.apache.tuscany.sca.host.webapp.WebSCADomain.<init>(WebSCADomain.java:41)
    ... 35 more
Caused by: org.osoa.sca.ServiceRuntimeException: 
com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of 
IllegalAnnotationExceptions
com.cisco.uc.apiframework.samples.simpleCalculatorSOAP.Employee does not have a 
no-arg default constructor.
    this problem is related to the following location:
        at com.cisco.uc.apiframework.samples.simpleCalculatorSOAP.Employee

    at 
org.apache.tuscany.sca.databinding.jaxb.JAXBTypeHelper.getSchemaDefinitions(JAXBTypeHelper.java:241)
    at 
org.apache.tuscany.sca.binding.ws.wsdlgen.Interface2WSDLGenerator.generate(Interface2WSDLGenerator.java:260)
    at 
org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator.createWSDLInterfaceContract(BindingWSDLGenerator.java:307)
    at 
org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator.createWSDLDocument(BindingWSDLGenerator.java:205)
    at 
org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator.generateWSDL(BindingWSDLGenerator.java:163)
    at 
org.apache.tuscany.sca.binding.ws.xml.BindingBuilderImpl.build(BindingBuilderImpl.java:48)
    at 
org.apache.tuscany.sca.assembly.builder.impl.ComponentServiceBindingBuilderImpl.buildServiceBindings(ComponentServiceBindingBuilderImpl.java:66)
    at 
org.apache.tuscany.sca.assembly.builder.impl.ComponentServiceBindingBuilderImpl.build(ComponentServiceBindingBuilderImpl.java:48)
    at 
org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl.build(CompositeBuilderImpl.java:150)
    at 
org.apache.tuscany.sca.host.embedded.impl.ReallySmallRuntime.buildComposite(ReallySmallRuntime.java:234)
    at 
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(DefaultSCADomain.java:238)
    ... 37 more
Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of 
IllegalAnnotationExceptions
com.cisco.uc.apiframework.samples.simpleCalculatorSOAP.Employee does not have a 
no-arg default constructor.
    this problem is related to the following location:
        at com.cisco.uc.apiframework.samples.simpleCalculatorSOAP.Employee

    at 
com.sun.xml.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:102)
    at 
com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:438)
    at 
com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:286)
    at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:139)
    at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:117)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:211)
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:372)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522)
    at 
org.apache.tuscany.sca.databinding.jaxb.JAXBContextCache.getJAXBContext(JAXBContextCache.java:245)
    at 
org.apache.tuscany.sca.databinding.jaxb.JAXBContextCache.getJAXBContext(JAXBContextCache.java:284)
    at 
org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:186)
    at 
org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:218)
    at 
org.apache.tuscany.sca.databinding.jaxb.JAXBTypeHelper.getSchemaDefinitions(JAXBTypeHelper.java:236)
    ... 47 more

Thanks in advance,
Lakshman.

Reply via email to