Author: scottkurz
Date: Wed Dec  7 22:40:37 2011
New Revision: 1211684

URL: http://svn.apache.org/viewvc?rev=1211684&view=rev
Log:
Add <wsa:MessageID> to ref-side messages for 2-way operation on forward 
interface of callback.

Modified:
    
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-jaxws/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/JAXWSBindingInvoker.java

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-jaxws/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/JAXWSBindingInvoker.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-jaxws/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/JAXWSBindingInvoker.java?rev=1211684&r1=1211683&r2=1211684&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-jaxws/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/JAXWSBindingInvoker.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-jaxws/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/JAXWSBindingInvoker.java
 Wed Dec  7 22:40:37 2011
@@ -23,6 +23,7 @@ import java.net.URL;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.UUID;
 
 import javax.wsdl.Binding;
 import javax.wsdl.BindingOperation;
@@ -81,6 +82,7 @@ public class JAXWSBindingInvoker impleme
     public static final String WSA_FINAL_NAMESPACE = 
"http://www.w3.org/2005/08/addressing";;
     public static final QName QNAME_WSA_ADDRESS = new 
QName(WSA_FINAL_NAMESPACE, "Address", "wsa");
     public static final QName QNAME_WSA_FROM = new QName(WSA_FINAL_NAMESPACE, 
"From", "wsa");
+    public static final QName QNAME_WSA_MESSAGEID = new 
QName(WSA_FINAL_NAMESPACE, "MessageID", "wsa");
     public static final QName QNAME_WSA_TO = new QName(WSA_FINAL_NAMESPACE, 
"To", "wsa");
     public static final QName QNAME_WSA_ACTION = new 
QName(WSA_FINAL_NAMESPACE, "Action", "wsa");
     public static final QName QNAME_WSA_RELATESTO = new 
QName(WSA_FINAL_NAMESPACE, "RelatesTo", "wsa");
@@ -361,7 +363,16 @@ public class JAXWSBindingInvoker impleme
 
             addWSAActionHeader(sh, action);
 
-            // requestMC.setFrom(fromEPR);
+            // We need a wsa:MessageId for request-response operation per 
WS-Addressing core specification, (and Axis2 will choke if addressing module is 
enabled.)
+            if (!operation.isNonBlocking()) {
+                String messageId = 
(String)msg.getHeaders().get(Constants.MESSAGE_ID);
+                if (messageId == null) {
+                    messageId = UUID.randomUUID().toString();
+                }
+                SOAPHeaderElement msgIdHeader = 
sh.addHeaderElement(QNAME_WSA_MESSAGEID);
+                msgIdHeader.setTextContent(messageId);
+            }
+            
         } // end if
 
         String toAddress = getToAddress(msg);


Reply via email to