ObjectFactory.class is missing when a JAXBContext is created and no WS
addressing information is added
------------------------------------------------------------------------------------------------------
Key: CXF-1278
URL: https://issues.apache.org/jira/browse/CXF-1278
Project: CXF
Issue Type: Bug
Components: JAXB Databinding
Affects Versions: 2.0.3
Reporter: Edell Nolan
Fix For: 2.0.4
Hi,
I have a method that i pass across an EndpointReferenceType created as below.
EndpointReferenceType ref =
EndpointReferenceUtils.getEndpointReferenceWithId(.....) method
I attempt to Convert data to Xml and within the method it calls
So obj is an EndpointReferenceType.
Class<?> cls = obj instanceof JAXBElement
? ((JAXBElement)obj).getDeclaredType()
: obj.getClass();
JAXBContext context = null;
Class[] classes = new Class[] {cls};
context = new JAXBDataBinding(classes).getContext();
The real bug is here. We end up having no ObjectFactory.class in the context
and as a consequence no WS information is added.
There was a condition in the code in JAXBDataBinding class to check the
following
private void addWsAddressingTypes(Set<Class<?>> classes) {
if (classes.contains(EndpointReferenceType.class)
|| classes.contains(ObjectFactory.class)) {
......................
}
but the check for EndpointReferenceType was removed as it is expected that an
ObjectFactory.class will always have been added.
Dan has also inidicated that it could be in the JAXBContextInitializer area.
The workaround is to put the check back in but the fix is to find out why the
ObjectFactory.class was not added.
thanks, Edell.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.