The DataBinding Scope wiki page
http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Databinding+Scope
 is now updated with the databinding scope for Axis2 MTOM support.

Just wanted to update everyone that, the standard type
javax.activation.DataHandler is now fully supported, more details
can be viewed from TUSCANY-2451.

Currently we have 2 outstanding issue that needs to be resolved...

1. Support for javax.xml.transform.Source data type, raised as TUSCANY-2386,
TUSCANY-2387 and TUSCANY-2452.
2. Support for org.apache.axiom.om.OMElement, raised as TUSCANY-2664

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)

Like to know if we have any sample to demonstrate the use of  various xml
binding annotation like @XmlAttachmentRef, @XmlMimeType, and
@XmlJavaTypeAdapter in service interface methods.

Any other comments and suggestions are appreciated. Thanks.

-- 
Thanks & Regards,
Ramkumar Ramalingam

Reply via email to