[
https://issues.jboss.org/browse/JBWS-3690?page=com.atlassian.jira.plugin....
]
RH Bugzilla Integration commented on JBWS-3690:
-----------------------------------------------
Alessio Soldano <asoldano(a)redhat.com> changed the Status of [bug
999893|https://bugzilla.redhat.com/show_bug.cgi?id=999893] from NEW to ASSIGNED
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.2
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