You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2007/05/25 06:11:21 UTC
svn commit: r541530 -
/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/dispatch/JAXBDispatch.java
Author: dims
Date: Thu May 24 21:11:21 2007
New Revision: 541530
URL: http://svn.apache.org/viewvc?view=rev&rev=541530
Log:
Fix for AXIS2-2707 - JAXBDispatch didn't handle value being null in the createMessageFromValue method
Modified:
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/dispatch/JAXBDispatch.java
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/dispatch/JAXBDispatch.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/dispatch/JAXBDispatch.java?view=diff&rev=541530&r1=541529&r2=541530
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/dispatch/JAXBDispatch.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/dispatch/JAXBDispatch.java Thu May 24 21:11:21 2007
@@ -28,6 +28,9 @@
import org.apache.axis2.jaxws.message.factory.BlockFactory;
import org.apache.axis2.jaxws.message.factory.JAXBBlockFactory;
import org.apache.axis2.jaxws.message.factory.MessageFactory;
+import org.apache.axis2.jaxws.message.factory.SOAPEnvelopeBlockFactory;
+import org.apache.axis2.jaxws.message.factory.SourceBlockFactory;
+import org.apache.axis2.jaxws.message.factory.XMLStringBlockFactory;
import org.apache.axis2.jaxws.registry.FactoryRegistry;
import org.apache.axis2.jaxws.spi.ServiceDelegate;
import org.apache.axis2.jaxws.utility.XMLRootElementUtil;
@@ -36,7 +39,10 @@
import javax.xml.bind.JAXBContext;
import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.transform.Source;
import javax.xml.ws.Service.Mode;
+import javax.xml.ws.WebServiceException;
public class JAXBDispatch<T> extends BaseDispatch<T> {
private static final Log log = LogFactory.getLog(JAXBDispatch.class);
@@ -64,9 +70,24 @@
public Message createMessageFromValue(Object value) {
Message message = null;
+
+ if (value == null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Dispatch invoked with null parameter Value");
+ log.debug("creating empty soap message");
+ }
+ try {
+ return createEmptyMessage(
+ Protocol.getProtocolForBinding(endpointDesc.getClientBindingID()));
+
+ } catch (XMLStreamException e) {
+ throw ExceptionFactory.makeWebServiceException(e);
+ }
+ }
+
try {
JAXBBlockFactory factory =
- (JAXBBlockFactory)FactoryRegistry.getFactory(JAXBBlockFactory.class);
+ (JAXBBlockFactory)FactoryRegistry.getFactory(JAXBBlockFactory.class);
Class clazz = value.getClass();
JAXBBlockContext context = null;
@@ -154,4 +175,11 @@
return value;
}
+
+ private Message createEmptyMessage(Protocol protocol)
+ throws WebServiceException, XMLStreamException {
+ MessageFactory mf = (MessageFactory)FactoryRegistry.getFactory(MessageFactory.class);
+ Message m = mf.create(protocol);
+ return m;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org