[ 
https://issues.apache.org/jira/browse/TUSCANY-2840?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ramkumar Ramalingam updated TUSCANY-2840:
-----------------------------------------

    Attachment: TUSCANY-2840-Part3.patch

> Issues in usage of @XmlJavaTypeAdapter annotation in service methods
> --------------------------------------------------------------------
>
>                 Key: TUSCANY-2840
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-2840
>             Project: Tuscany
>          Issue Type: Bug
>          Components: Java SCA Data Binding Runtime
>    Affects Versions: Java-SCA-Next
>         Environment: Windows XP, SP2, IBM JDK 1.5
>            Reporter: Ramkumar Ramalingam
>            Assignee: Ramkumar Ramalingam
>             Fix For: Java-SCA-Next
>
>         Attachments: TUSCANY-2840-Part1.patch, TUSCANY-2840-Part2.patch, 
> TUSCANY-2840-Part3.patch
>
>
> Here I like to talk about the options to support 
> org.apache.axiom.om.OMElement datatype in our databinding scope....
> Since OMElement is an interface, the JAXB runtime throws the following 
> exception....
> 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
> JAXB recommends to use an XMLAdapter to solve this issue, by creating an 
> XMLAdapter for your interfaces (OMElement) and by using
> @XmlJavaTypeAdapter in the service method as shown below.
> @XmlJavaTypeAdapter(value=OMElementXmlAdapter.class, type=OMElement.class)
> public String uploadOMElementFile(OMElement attachment) throws Exception;
> Using @XmlJavaTypeAdapter in the service method, throws the following 
> exception.....
> java.lang.IllegalArgumentException: value class 
> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.OMElementXmlAdapter
>     at org.objectweb.asm.ClassWriter.a(Unknown Source)
>     at org.objectweb.asm.AnnotationWriter.visit(Unknown Source)
>     at 
> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareField(BaseBeanGenerator.java:250)
>     at 
> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareProperty(BaseBeanGenerator.java:195)
>     at 
> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.defineClass(BaseBeanGenerator.java:153)
>     at 
> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.generate(BaseBeanGenerator.java:437)
>     at 
> org.apache.tuscany.sca.interfacedef.java.jaxws.WrapperBeanGenerator.generateResponseWrapper(WrapperBeanGenerator.java:190)
>     at 
> org.apache.tuscany.sca.interfacedef.java.jaxws.GeneratedDataTypeImpl.getPhysical(GeneratedDataTypeImpl.java:101)
>     at 
> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.findClasses(JAXBContextHelper.java:230)
>     at 
> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:210)
>     at 
> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:89)
>     at 
> org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:52)
>     at 
> org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:40)
>     at 
> org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:200)
>     at 
> org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
>     at 
> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:190)
>     at 
> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:1)
>     at 
> org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
>     at 
> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.transform(DataTransformationInterceptor.java:208)
>     at 
> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:97)
>     at 
> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:310)
>     at 
> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:163)
>     at $Proxy19.uploadOMElementFile(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to