[prev in list] [next in list] [prev in thread] [next in thread]
List: axis-cvs
Subject: svn commit: r398304 - in /webservices/axis2/trunk/java/modules:
From: dims () apache ! org
Date: 2006-04-30 10:13:04
Message-ID: 20060430101305.14240.qmail () minotaur ! apache ! org
[Download RAW message or body]
Author: dims
Date: Sun Apr 30 03:12:59 2006
New Revision: 398304
URL: http://svn.apache.org/viewcvs?rev=398304&view=rev
Log:
try not to create the whole om tree looking for the soap:Header
Modified:
webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/MessageContext.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/InstanceDispatcher.java
Modified: webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/addressing/src \
/org/apache/axis2/handlers/addressing/AddressingInHandler.java?rev=398304&r1=398303&r2=398304&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java \
(original)
+++ webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java \
Sun Apr 30 03:12:59 2006 @@ -45,13 +45,16 @@
public void invoke(MessageContext msgContext) throws AxisFault {
String namespace = addressingNamespace;
- SOAPHeader header = msgContext.getEnvelope().getHeader();
// if there is some one who has already found addressing, do not do anything \
here. if (msgContext.getProperty(WS_ADDRESSING_VERSION) != null) {
return;
}
+ SOAPHeader header = null;
+ if(msgContext.isHeaderPresent()) {
+ header = msgContext.getEnvelope().getHeader();
+ }
// if there are not headers put a flag to disable addressing temporary
if (header == null) {
msgContext.setProperty(Constants.Configuration.DISABLE_ADDRESSING_FOR_OUT_MESSAGES, \
Boolean.TRUE);
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/MessageContext.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/MessageContext.java?rev=398304&r1=398303&r2=398304&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/MessageContext.java \
(original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/MessageContext.java \
Sun Apr 30 03:12:59 2006 @@ -19,6 +19,9 @@
import org.apache.axiom.soap.SOAP11Constants;
import org.apache.axiom.soap.SOAP12Constants;
import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPConstants;
+import org.apache.axiom.om.OMNode;
+import org.apache.axiom.om.OMElement;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.addressing.RelatesTo;
@@ -937,5 +940,24 @@
}
}
return false;
+ }
+
+ /**
+ * Gets the first child of the envelope, check if it is a soap:Body, which means \
there is no header. + * We do this basically to make sure we don't parse and \
build the om tree of the whole envelope + * looking for the soap header. If this \
method returns true, there still is no guarantee that there is + * a soap:Header \
present, use getHeader() and also check for null on getHeader() to be absolutely \
sure. + *
+ * @return boolean
+ */
+ public boolean isHeaderPresent() {
+ OMNode node = getEnvelope().getFirstOMChild();
+ if(node instanceof OMElement){
+ OMElement firstChild = (OMElement) node;
+ if(firstChild.getQName().getLocalPart().equals(SOAPConstants.BODY_LOCAL_NAME)) \
{ + return false;
+ }
+ }
+ return true;
}
}
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java?rev=398304&r1=398303&r2=398304&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java \
(original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java \
Sun Apr 30 03:12:59 2006 @@ -65,6 +65,9 @@
}
private void checkMustUnderstand(MessageContext msgContext) throws AxisFault {
+ if(!msgContext.isHeaderPresent()) {
+ return;
+ }
SOAPEnvelope se = msgContext.getEnvelope();
if (se.getHeader() == null) {
return;
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/InstanceDispatcher.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/a \
pache/axis2/engine/InstanceDispatcher.java?rev=398304&r1=398303&r2=398304&view=diff \
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/InstanceDispatcher.java \
(original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/InstanceDispatcher.java \
Sun Apr 30 03:12:59 2006 @@ -18,7 +18,9 @@
package org.apache.axis2.engine;
import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMNode;
import org.apache.axiom.soap.SOAPHeader;
+import org.apache.axiom.soap.SOAPConstants;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.context.MessageContext;
@@ -144,6 +146,9 @@
}
private void extractServiceGroupContextId(MessageContext msgContext) throws \
AxisFault { + if(!msgContext.isHeaderPresent()) {
+ return;
+ }
SOAPHeader soapHeader = msgContext.getEnvelope().getHeader();
if (soapHeader != null) {
OMElement serviceGroupId = soapHeader.getFirstChildWithName(new \
QName(Constants.AXIS2_NAMESPACE_URI, @@ -153,14 +158,11 @@
ServiceGroupContext serviceGroupContext = \
msgContext.getConfigurationContext(). getServiceGroupContext(groupId, msgContext);
if (serviceGroupContext == null) {
-// handleNoServiceGroupContextIDCase(msgContext);
throw new AxisFault(Messages.getMessage(
"invalidservicegrouoid", groupId));
}
msgContext.setServiceGroupContextId(serviceGroupId.getText());
}
}
-
}
-
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic