[jboss-svn-commits] JBossWS SVN: r615 - branches/jbossws-1.0/src/main/java/org/jboss/ws/jaxrpc/encoding
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jul 17 10:54:11 EDT 2006
Author: heiko.braun at jboss.com
Date: 2006-07-17 10:54:09 -0400 (Mon, 17 Jul 2006)
New Revision: 615
Modified:
branches/jbossws-1.0/src/main/java/org/jboss/ws/jaxrpc/encoding/JAXBSerializer.java
Log:
different serialization strategy for exceptions
Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/jaxrpc/encoding/JAXBSerializer.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/jaxrpc/encoding/JAXBSerializer.java 2006-07-14 17:14:36 UTC (rev 614)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/jaxrpc/encoding/JAXBSerializer.java 2006-07-17 14:54:09 UTC (rev 615)
@@ -29,6 +29,7 @@
import org.jboss.ws.jaxb.JAXBConstants;
import org.jboss.ws.jaxb.JAXBMarshaller;
import org.jboss.ws.jaxb.JBossXBMarshallerImpl;
+import org.jboss.ws.jaxb.XercesXSMarshallerImpl;
import org.jboss.ws.metadata.jaxrpcmapping.JavaWsdlMapping;
import org.w3c.dom.NamedNodeMap;
@@ -84,13 +85,26 @@
// Get the jaxrpc-mapping.xml object graph
JavaWsdlMapping jaxrpcMapping = serContext.getJavaWsdlMapping();
- marshaller.setProperty(JAXBConstants.JAXB_XS_MODEL, model);
- marshaller.setProperty(JAXBConstants.JAXB_TYPE_QNAME, xmlType);
- marshaller.setProperty(JAXBConstants.JAXB_ROOT_QNAME, xmlName);
- marshaller.setProperty(JAXBConstants.JAXB_JAVA_MAPPING, jaxrpcMapping);
+ StringWriter strwr = new StringWriter();
- StringWriter strwr = new StringWriter();
- marshaller.marshal(value, strwr);
+ // schemabinding marshaller is the default delegate
+ JAXBMarshaller delegate = marshaller;
+
+ if(value instanceof Exception)
+ {
+ // todo: CTS workaround for custom exceptions, clarify when Alexey is back
+ // causes NPE in MarshallerImpl:458
+ delegate = new XercesXSMarshallerImpl();
+ }
+
+ // marshalling context
+ delegate.setProperty(JAXBConstants.JAXB_XS_MODEL, model);
+ delegate.setProperty(JAXBConstants.JAXB_TYPE_QNAME, xmlType);
+ delegate.setProperty(JAXBConstants.JAXB_ROOT_QNAME, xmlName);
+ delegate.setProperty(JAXBConstants.JAXB_JAVA_MAPPING, jaxrpcMapping);
+
+ // marshall
+ delegate.marshal(value, strwr);
xmlFragment = strwr.toString();
log.debug("serialized: " + xmlFragment);
More information about the jboss-svn-commits
mailing list