JAX-RS databinding support for JiBX
-----------------------------------
Key: CXF-4245
URL: https://issues.apache.org/jira/browse/CXF-4245
Project: CXF
Issue Type: Bug
Components: JAXB Databinding
Affects Versions: 2.6
Environment: All Environments
Reporter: Don Corley
Fix For: 2.6.1
Dan,
Thanks again for writing the databinding components for JiBX.
Unfortunately, the JAX-RS component calls empty methods when I try to use this
databinding component.
This seems to fix the problem:
---start patch
Index: rt/databinding/jibx/src/main/java/org/apache/cxf/jibx/JibxDataWriter.java
===================================================================
--- rt/databinding/jibx/src/main/java/org/apache/cxf/jibx/JibxDataWriter.java
(revision 1327050)
+++ rt/databinding/jibx/src/main/java/org/apache/cxf/jibx/JibxDataWriter.java
(working copy)
@@ -40,6 +40,15 @@
public class JibxDataWriter implements DataWriter<XMLStreamWriter> {
public void write(Object obj, XMLStreamWriter output) {
+ try {
+ IBindingFactory factory =
BindingDirectory.getFactory(obj.getClass());
+ IMarshallingContext ctx = getMarshallingContext(obj);
+ StAXWriter writer = new StAXWriter(factory.getNamespaces(),
output);
+ ctx.setXmlWriter(writer);
+ ((IMarshallable)obj).marshal(ctx);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
}
public void write(Object obj, MessagePartInfo part, XMLStreamWriter
output) {
Index: rt/databinding/jibx/src/main/java/org/apache/cxf/jibx/JibxDataReader.java
===================================================================
--- rt/databinding/jibx/src/main/java/org/apache/cxf/jibx/JibxDataReader.java
(revision 1327050)
+++ rt/databinding/jibx/src/main/java/org/apache/cxf/jibx/JibxDataReader.java
(working copy)
@@ -62,7 +62,12 @@
}
public Object read(QName elementQName, XMLStreamReader input, Class<?>
type) {
- throw new UnsupportedOperationException("Not Implemented");
+ try {
+ UnmarshallingContext ctx = getUnmarshallingContext(input, type);
+ return ctx.unmarshalElement(type);
+ } catch (JiBXException e) {
+ throw new RuntimeException(e);
+ }
}
public void setAttachments(Collection<Attachment> attachments) {
--- end patch
I have a sample project at if you want to see a working configuration:
https://github.com/jibx/maven-plugin/tree/master/examples/cxf-jaxrs
Remember to shutdown karaf after install, before start to avoid a karaf wiring
bug.
Thanks!
Don
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira