[JBoss JIRA] (JBWS-3690) XMLJavaTypeAdapter not working in Exception Classes
by Alessio Soldano (JIRA)
[ https://issues.jboss.org/browse/JBWS-3690?page=com.atlassian.jira.plugin.... ]
Alessio Soldano updated JBWS-3690:
----------------------------------
Fix Version/s: jbossws-cxf-4.2.1
> XMLJavaTypeAdapter not working in Exception Classes
> ---------------------------------------------------
>
> Key: JBWS-3690
> URL: https://issues.jboss.org/browse/JBWS-3690
> Project: JBoss Web Services
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: jbossws-cxf
> Affects Versions: jbossws-cxf-4.2
> Reporter: Mustafa Musaji
> Assignee: Mustafa Musaji
> Fix For: jbossws-cxf-4.2.1
>
> Attachments: cxf5219.diff, cxfTest.jar
>
>
> @XMLJavaTypeAdapter usage in Exception Classes does not work when mapping to a class not in the JAXB Context.
> {code:title=MyEJB.java}
> @Stateless
> @WebService
> public class MyEJB {
> public void launcheMyException() throws MyException {
> return;
> }
> }
> {code}
> {code:title=MyException.java}
> @XmlAccessorType(XmlAccessType.FIELD)
> public class MyException extends Exception {
> @XmlJavaTypeAdapter(Cl1ToCl2Adapter.class)
> MyClass1 obj1;
> @XmlJavaTypeAdapter(NoArgObjAdapter.class)
> NoArgObj obj2;
> public MyClass1 getObj1() {
> return obj1;
> }
>
> public void setObj1(MyClass1 obj1) {
> this.obj1 = obj1;
> }
> public NoArgObj getObj2() {
> return obj2;
> }
> public void setObj2(NoArgObj obj2) {
> this.obj2 = obj2;
> }
> }
> {code}
> {code:title=Cl1ToCl2Adapter.java}
> public class Cl1ToCl2Adapter extends XmlAdapter<MyClass2,MyClass1> {
> @Override
> public MyClass2 marshal(MyClass1 v) throws Exception {
> return new MyClass2();
> }
> @Override
> public MyClass1 unmarshal(MyClass2 v) throws Exception {
> MyClass1 mc1 = new MyClass1(v.getS2());
> return mc1;
> }
> }
> {code}
> This is what the resulting WSDL contains. Obj2 is mapped fine to a String, but MyClass1 is not and should have the MyClass2 mapping here.
> {code:xml}
> <xs:complexType name="MyException">
> <xs:sequence>
> <xs:element name="str" nillable="true" type="xs:string"/>
> <xs:element name="obj2" nillable="true" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> {code}
> If you add the same adapter to a non Exception class it works just fine.
> This is NOT a duplicate of JBWS-3552 as I believe in that use case only known JAXB types were tested (HashMap, Strings etc). This issue is when you are using custom classes that need to be mapped.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira