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 de...@apache.org on 2006/07/06 13:36:40 UTC
svn commit: r419526 - in /webservices/axis2/trunk/java/modules:
core/src/org/apache/axis2/context/ core/src/org/apache/axis2/description/
core/src/org/apache/axis2/engine/ core/test/org/apache/axis2/context/
integration/test/org/apache/axis2/engine/
Author: deepal
Date: Thu Jul 6 04:36:40 2006
New Revision: 419526
URL: http://svn.apache.org/viewvc?rev=419526&view=rev
Log:
- client running inside a server had a problem when invoking the service in async manner
- overriding of operations context (due to messageid is equal)
Modified:
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ConfigurationContext.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/OperationContext.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisOperation.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutInAxisOperation.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AddressingBasedDispatcher.java
webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/OperationContextTest.java
webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/HandlerFailureTest.java
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ConfigurationContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ConfigurationContext.java?rev=419526&r1=419525&r2=419526&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ConfigurationContext.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ConfigurationContext.java Thu Jul 6 04:36:40 2006
@@ -220,11 +220,14 @@
/**
* Gets a OperationContext given a Message ID.
*
- * @param messageID
+ * @param msgctx
* @return Returns OperationContext <code>OperationContext<code>
*/
- public OperationContext getOperationContext(String messageID) {
- return (OperationContext) this.operationContextMap.get(messageID);
+ public OperationContext getOperationContext(MessageContext msgctx) {
+ String id = msgctx.getRelatesTo().getValue() + ":" +
+ msgctx.getAxisOperation().getMessageExchangePattern();
+ //String messageID
+ return (OperationContext) this.operationContextMap.get(id);
}
public Map getOperationContextMap() {
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/OperationContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/OperationContext.java?rev=419526&r1=419525&r2=419526&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/OperationContext.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/OperationContext.java Thu Jul 6 04:36:40 2006
@@ -105,7 +105,8 @@
MessageContext messageContext = (MessageContext) msgContexts.next();
if ((null != messageContext) && (operationContextMap != null)) {
- operationContextMap.remove(messageContext.getMessageID());
+ operationContextMap.remove(messageContext.getMessageID() + ":"
+ + getAxisOperation().getMessageExchangePattern());
}
}
}
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisOperation.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisOperation.java?rev=419526&r1=419525&r2=419526&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisOperation.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisOperation.java Thu Jul 6 04:36:40 2006
@@ -34,11 +34,7 @@
import org.apache.commons.logging.LogFactory;
import javax.xml.namespace.QName;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Set;
+import java.util.*;
public abstract class AxisOperation extends AxisDescription
implements WSDLConstants {
@@ -271,8 +267,8 @@
operation.setWsamappingList(axisOperation.getWsamappingList());
operation.setOutputAction(axisOperation.getOutputAction());
String[] faultActionNames = axisOperation.getFaultActionNames();
- for(int i=0;i<faultActionNames.length;i++){
- operation.addFaultAction(faultActionNames[i],axisOperation.getFaultAction(faultActionNames[i]));
+ for (int i = 0; i < faultActionNames.length; i++) {
+ operation.addFaultAction(faultActionNames[i], axisOperation.getFaultAction(faultActionNames[i]));
}
operation.setRemainingPhasesInFlow(axisOperation.getRemainingPhasesInFlow());
operation.setPhasesInFaultFlow(axisOperation.getPhasesInFaultFlow());
@@ -306,10 +302,10 @@
ConfigurationContext configContext = msgContext.getConfigurationContext();
operationContext =
- configContext.getOperationContext(msgContext.getRelatesTo().getValue());
+ configContext.getOperationContext(msgContext);
if (null == operationContext) {
- throw new AxisFault("cannot Correalte Msg " + this.getName().toString() +" for the " + msgContext.getRelatesTo().getValue());
+ throw new AxisFault("cannot Correalte Msg " + this.getName().toString() + " for the " + msgContext.getRelatesTo().getValue());
}
}
@@ -353,7 +349,7 @@
ConfigurationContext configContext = msgContext.getConfigurationContext();
operationContext =
- configContext.getOperationContext(msgContext.getRelatesTo().getValue());
+ configContext.getOperationContext(msgContext);
if (null == operationContext) {
throw new AxisFault(Messages.getMessage("cannotCorrelateMsg",
@@ -369,11 +365,12 @@
public void registerOperationContext(MessageContext msgContext,
OperationContext operationContext)
throws AxisFault {
- msgContext.getConfigurationContext().registerOperationContext(msgContext.getMessageID(),
+ msgContext.setAxisOperation(this);
+ msgContext.getConfigurationContext().registerOperationContext(msgContext.getMessageID()
+ + ":" + this.getMessageExchangePattern(),
operationContext);
operationContext.addMessageContext(msgContext);
msgContext.setOperationContext(operationContext);
-
if (operationContext.isComplete()) {
operationContext.cleanup();
}
@@ -587,7 +584,7 @@
}
return result;
}
-
+
public boolean isEngaged(QName moduleName) {
Iterator engagedModuleItr = engagedModules.iterator();
while (engagedModuleItr.hasNext()) {
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutInAxisOperation.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutInAxisOperation.java?rev=419526&r1=419525&r2=419526&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutInAxisOperation.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutInAxisOperation.java Thu Jul 6 04:36:40 2006
@@ -272,13 +272,15 @@
//HTTP
mc.setProperty(MessageContext.TRANSPORT_NON_BLOCKING, Boolean.TRUE);
AxisEngine engine = new AxisEngine(cc);
+ sc.getAxisService().mapActionToOperation(mc.getSoapAction(),axisOp);
+ mc.getConfigurationContext().registerOperationContext(mc.getMessageID(), oc);
engine.send(mc);
} else {
if (block) {
// Send the SOAP Message and receive a response
MessageContext response = send(mc);
// check for a fault and return the result
- if (response!=null) {
+ if (response != null) {
SOAPEnvelope resEnvelope = response.getEnvelope();
if (resEnvelope.getBody().hasFault()) {
SOAPFault soapFault = resEnvelope.getBody().getFault();
@@ -417,7 +419,7 @@
// send the request and wait for reponse
MessageContext response = send(msgctx);
// call the callback
- if (response!=null) {
+ if (response != null) {
SOAPEnvelope resenvelope = response.getEnvelope();
SOAPBody body = resenvelope.getBody();
if (body.hasFault()) {
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AddressingBasedDispatcher.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AddressingBasedDispatcher.java?rev=419526&r1=419525&r2=419526&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AddressingBasedDispatcher.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AddressingBasedDispatcher.java Thu Jul 6 04:36:40 2006
@@ -44,7 +44,7 @@
*/
public static final QName NAME = new QName("http://ws.apache.org/axis2/",
"AddressingBasedDispatcher");
- private static final Log log = LogFactory.getLog(AddressingBasedDispatcher.class);
+ private static final Log log = LogFactory.getLog(AddressingBasedDispatcher.class);
// TODO this logic needed to be improved, as the Dispatching is almost guaranteed to fail
public AxisOperation findOperation(AxisService service, MessageContext messageContext)
@@ -68,7 +68,7 @@
if (toEPR != null) {
String address = toEPR.getAddress();
- log.debug(Messages.getMessage("checkingserviceforepr",address));
+ log.debug(Messages.getMessage("checkingserviceforepr", address));
if (Final.WSA_ANONYMOUS_URL.equals(address)
|| Submission.WSA_ANONYMOUS_URL.equals(address)) {
@@ -76,13 +76,13 @@
}
QName serviceName;
- String[] values = Utils.parseRequestURLForServiceAndOperation(address ,
+ String[] values = Utils.parseRequestURLForServiceAndOperation(address,
messageContext.getConfigurationContext().getServicePath());
if (values == null) {
return null;
}
- log.debug(Messages.getMessage("checkingserviceforepr",values[0]));
+ log.debug(Messages.getMessage("checkingserviceforepr", values[0]));
if (values[0] != null) {
serviceName = new QName(values[0]);
@@ -108,7 +108,7 @@
public void invoke(MessageContext msgctx) throws AxisFault {
// first check we can dispatch using the relates to
- if (msgctx.getRelatesTo() != null) {
+ if (msgctx.getRelatesTo() != null && msgctx.getAxisOperation() != null) {
String relatesTo = msgctx.getRelatesTo().getValue();
log.debug(Messages.getMessage("checkingrelatesto",
@@ -116,7 +116,7 @@
if ((relatesTo != null) || "".equals(relatesTo)) {
OperationContext operationContext =
- msgctx.getConfigurationContext().getOperationContext(relatesTo);
+ msgctx.getConfigurationContext().getOperationContext(msgctx);
if (operationContext != null) {
msgctx.setAxisOperation(operationContext.getAxisOperation());
Modified: webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/OperationContextTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/OperationContextTest.java?rev=419526&r1=419525&r2=419526&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/OperationContextTest.java (original)
+++ webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/OperationContextTest.java Thu Jul 6 04:36:40 2006
@@ -58,6 +58,7 @@
messageContext2.setMessageID(UUIDGenerator.getUUID());
messageContext2.getOptions().addRelatesTo(
new RelatesTo(messageContext1.getMessageID()));
+ messageContext2.setAxisOperation(axisOperation);
OperationContext operationContext2 = axisOperation
.findOperationContext(messageContext2, sessionContext);
assertEquals(operationContext1, operationContext2);
Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/HandlerFailureTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/HandlerFailureTest.java?rev=419526&r1=419525&r2=419526&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/HandlerFailureTest.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/HandlerFailureTest.java Thu Jul 6 04:36:40 2006
@@ -28,6 +28,7 @@
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
+import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.context.ConfigurationContext;
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org