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
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.