Author: ffang
Date: Mon Jan 28 05:50:01 2013
New Revision: 1439260
URL: http://svn.apache.org/viewvc?rev=1439260&view=rev
Log:
[CXF-4784]enhance CXF to follow jaxws spec 3.6.2.3 when using RI or Axis2 client
Modified:
cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCOutInterceptor.java
Modified:
cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCOutInterceptor.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCOutInterceptor.java?rev=1439260&r1=1439259&r2=1439260&view=diff
==============================================================================
---
cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCOutInterceptor.java
(original)
+++
cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCOutInterceptor.java
Mon Jan 28 05:50:01 2013
@@ -60,20 +60,22 @@ public class RPCOutInterceptor extends A
List<MessagePartInfo> parts = null;
+ boolean output = false;
if (!isRequestor(message)) {
parts = operation.getOutput().getMessageParts();
- addOperationNode(nsStack, message, xmlWriter, true, operation);
+ output = true;
} else {
parts = operation.getInput().getMessageParts();
- addOperationNode(nsStack, message, xmlWriter, false,
operation);
+ output = false;
}
-
+
MessageContentsList objs =
MessageContentsList.getContentsList(message);
if (objs == null) {
+ addOperationNode(nsStack, message, xmlWriter, output,
operation);
+ xmlWriter.writeEndElement();
return;
}
-
-
+
for (MessagePartInfo part : parts) {
if (objs.hasValue(part)) {
Object o = objs.get(part);
@@ -87,8 +89,10 @@ public class RPCOutInterceptor extends A
// part.setConcreteName(new QName("",
part.getConcreteName().getLocalPart()));
}
}
+
+ addOperationNode(nsStack, message, xmlWriter, output, operation);
writeParts(message, message.getExchange(), operation, objs, parts);
-
+
// Finishing the writing.
xmlWriter.writeEndElement();
} catch (XMLStreamException e) {