Hi Ramkumar, The article shows that we need to create an adapter to the class that does not have a no-arg default constructor, ie, create a class that extends * XmlAdapter<>* and implement the inherited methods. Moreover, we need to annotate the class that was adapted with *...@xmljavatypeadapter* annotation.
However, the problem is that although the *Exception* an *Throwable* classes have no-arg default constructors, the *StackTraceElement* doesn't. So, I would need to create an adpater to *StackTracElement* and annotate it with * @XmlJavaTypeAdpater*, what is not possible. Is it right, or I am missing something? Regards On Mon, Mar 2, 2009 at 3:16 PM, Ramkumar R <[email protected]> wrote: > Hi Douglas, > > Well yeah the fix is now available for this issue, In Tuscany we are now > trying to support non-JAXB type using JAXB 2.0's XmlJavaTypeAdapter as > mentioned in this article below. > > http://weblogs.java.net/blog/kohsuke/archive/2005/09/using_jaxb_20s.html > > Also you can take a look at the JUnit test available in binding-ws-axis2 > module.... > > http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/binding-ws-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/itests/mtom/FileTransferService.java > > Please let me know, if you need more clarifications. > > > On Mon, Mar 2, 2009 at 11:05 PM, Douglas Leite <[email protected]>wrote: > >> Hi Ramkumar, >> >> Did you find out something that can be done to workaround this issue? >> Could be used other framework to marshall / unmarshall the data types? Would >> it solve the problem? >> >> Regards >> >> >> On Thu, Feb 5, 2009 at 10:26 AM, Ramkumar R <[email protected]>wrote: >> >>> Hi Douglas, >>> >>> As Scott mentioned, we depend on the JAXB runtime to marshal/demarshal >>> the data types. I have also noticed this one while using the >>> org.apache.axiom.om.OMElement as the data type with binding.ws as shown >>> below. >>> >>> SEVERE: org.apache.tuscany.sca.databinding.TransformationException: >>> org.apache.tuscany.sca.databinding.TransformationException: >>> com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 6 counts of >>> IllegalAnnotationExceptions >>> org.apache.axiom.om.OMElement is an interface, and JAXB can't handle >>> interfaces. >>> this problem is related to the following location: >>> at org.apache.axiom.om.OMElement >>> at protected org.apache.axiom.om.OMElement >>> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile.arg0 >>> at >>> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile >>> >>> This issue is raised as TUSCANY-2664. Please add your issue as part of >>> this JIRA OR you can also raise a seperate one. >>> >>> I am currently looking if we can have some workaround for this issue as >>> this feature is very much required to support MTOM with binding.ws. >> >> >>> >>> On Wed, Feb 4, 2009 at 10:01 PM, Scott Kurz <[email protected]> wrote: >>> >>>> Douglas, >>>> >>>> Since our <binding.ws> impl uses JAXB by default to map from the XML >>>> wireformat to the application Java, the JAXB runtime needs to be able to >>>> deserialize into your input/output types. If the types don't contain JAXB >>>> annotations, they need to follow the pattern that JAXB expects, i.e. they >>>> must contain the no-arg default constructor. >>>> >>>> Also I'll mention that we follow the JAX-WS spec in order to map between >>>> a Java exception and the platform-neutral fault data it carries. (See >>>> "Business Exceptions/Faults" at >>>> http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Databinding+Scope >>>> for more info. >>>> >>>> It crossed my mind that maybe your interface is passing >>>> java.lang.Exception as an input parameter because you weren't aware of how >>>> to "throw" it across <binding.ws> .... or maybe you have a good reason >>>> for doing so and it was just a useful example. >>>> >>>> Scott >>>> >>>> >>>> >>>> >>>> On Wed, Feb 4, 2009 at 9:58 AM, Douglas Leite <[email protected]>wrote: >>>> >>>>> When I try to use the binding.ws over an interface that has an >>>>> operation that takes a complex type with no-arg default constructor, in >>>>> some >>>>> part of the hierarchy, as argument, I get an error. >>>>> >>>>> More specifically I have something like this: >>>>> * >>>>> @Remotable >>>>> public interface MyService { >>>>> >>>>> @OneWay >>>>> public void throwsAnException(Exception ex); >>>>> }* >>>>> >>>>> At the SCDL file: >>>>> >>>>> *<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" >>>>> targetNamespace="http://myservice" >>>>> name="myservice"> >>>>> >>>>> **<component name="MyServiceComponent"> >>>>> * >>>>> * >>>>> **<implementation.java class="service.MyServiceImpl"/> >>>>> * >>>>> * >>>>> ** <service name="MyService"> >>>>> * >>>>> * <interface.java >>>>> interface="service.MyService"/> >>>>> * >>>>> * <binding.ws uri=" >>>>> http://localhost:8086/MyServiceComponent" /> >>>>> * >>>>> * </service> >>>>> * >>>>> *</component> >>>>> * >>>>> *</composite>* >>>>> >>>>> I got the following error: >>>>> >>>>> SEVERE: Exception thrown was: org.osoa.sca.ServiceRuntimeException: >>>>> com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of >>>>> IllegalAnnotationExceptions >>>>> java.lang.StackTraceElement does not have a no-arg default constructor. >>>>> this problem is related to the following location: >>>>> at java.lang.StackTraceElement >>>>> at public java.lang.StackTraceElement[] >>>>> java.lang.Throwable.getStackTrace() >>>>> at java.lang.Throwable >>>>> at java.lang.Exception >>>>> >>>>> Although the Exception an Throwable classes have no-arg default >>>>> constructors, the StackTraceElement doesn't have. >>>>> What can I do to avoid this problem? >>>>> >>>>> Thanks in advance, >>>>> >>>>> -- >>>>> Douglas Siqueira Leite >>>>> Computer Science Master's degree student of University of Campinas >>>>> (Unicamp), Brazil >>>>> >>>>> >>>> >>> >>> >>> -- >>> Thanks & Regards, >>> Ramkumar Ramalingam >>> >> >> >> >> -- >> Douglas Siqueira Leite >> Graduate student at University of Campinas (Unicamp), Brazil >> >> > > > -- > Thanks & Regards, > Ramkumar Ramalingam > -- Douglas Siqueira Leite Graduate student at University of Campinas (Unicamp), Brazil
