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

Reply via email to