You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by pr...@apache.org on 2008/02/15 19:37:20 UTC
svn commit: r628143 - in
/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description:
OutInAxisOperation.java OutOnlyAxisOperation.java
Author: pradine
Date: Fri Feb 15 10:37:19 2008
New Revision: 628143
URL: http://svn.apache.org/viewvc?rev=628143&view=rev
Log:
Fix for AXIS2-2830.
Modified:
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/OutOnlyAxisOperation.java
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java?rev=628143&r1=628142&r2=628143&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java Fri Feb 15 10:37:19 2008
@@ -23,7 +23,9 @@
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
+import org.apache.axis2.addressing.AddressingConstants;
import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.addressing.AddressingConstants.Final;
import org.apache.axis2.client.OperationClient;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.async.AsyncResult;
@@ -199,15 +201,22 @@
}
EndpointReference replyTo = mc.getReplyTo();
- if (replyTo !=null && replyTo.hasNoneAddress()) {
- throw new AxisFault( replyTo.getAddress() + "" +
- " can not be used with OutInAxisOperationClient , user either "
- + "fireAndForget or sendRobust)");
- }
- String customReeplyTo = (String)options.getProperty(Options.CUSTOM_REPLYTO_ADDRESS);
- if ( ! (Options.CUSTOM_REPLYTO_ADDRESS_TRUE.equals(customReeplyTo))) {
- if (replyTo!=null && !replyTo.hasAnonymousAddress()){
- useAsync = true;
+ if (replyTo != null) {
+ if (replyTo.hasNoneAddress()) {
+ throw new AxisFault( replyTo.getAddress() + "" +
+ " can not be used with OutInAxisOperationClient , user either "
+ + "fireAndForget or sendRobust)");
+ }
+ else if (replyTo.hasAnonymousAddress() &&
+ replyTo.getAllReferenceParameters() != null) {
+ mc.setProperty(AddressingConstants.INCLUDE_OPTIONAL_HEADERS, Boolean.TRUE);
+ }
+
+ String customReplyTo = (String)options.getProperty(Options.CUSTOM_REPLYTO_ADDRESS);
+ if ( ! (Options.CUSTOM_REPLYTO_ADDRESS_TRUE.equals(customReplyTo))) {
+ if (!replyTo.hasAnonymousAddress()){
+ useAsync = true;
+ }
}
}
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/OutOnlyAxisOperation.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/OutOnlyAxisOperation.java?rev=628143&r1=628142&r2=628143&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/OutOnlyAxisOperation.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/OutOnlyAxisOperation.java Fri Feb 15 10:37:19 2008
@@ -21,6 +21,7 @@
import org.apache.axiom.om.util.UUIDGenerator;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.AddressingConstants.Final;
+import org.apache.axis2.addressing.AddressingConstants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.OperationClient;
import org.apache.axis2.client.Options;
@@ -247,22 +248,27 @@
ConfigurationContext cc = sc.getConfigurationContext();
prepareMessageContext(cc, mc);
- //As this is an out-only MEP we add a sensible default for
- //the replyTo.
+ //As this is an out-only MEP we explicitly add a more sensible default for
+ //the replyTo, if required. We also need to ensure that if the replyTo EPR
+ //has an anonymous address and reference parameters that it gets flowed
+ //across the wire.
EndpointReference epr = mc.getReplyTo();
- if (epr == null)
+ if (epr == null) {
mc.setReplyTo(new EndpointReference(Final.WSA_NONE_URI));
+ }
+ else if (epr.hasAnonymousAddress() && epr.getAllReferenceParameters() != null) {
+ mc.setProperty(AddressingConstants.INCLUDE_OPTIONAL_HEADERS, Boolean.TRUE);
+ }
// create the operation context for myself
OperationContext oc = sc.createOperationContext(axisOp);
oc.addMessageContext(mc);
// ship it out
- AxisEngine engine = new AxisEngine(cc);
if (!block) {
mc.setProperty(MessageContext.TRANSPORT_NON_BLOCKING, Boolean.TRUE);
}
- engine.send(mc);
+ AxisEngine.send(mc);
// all done
completed = true;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org