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 di...@apache.org on 2004/01/17 06:24:52 UTC

cvs commit: ws-axis/java/src/org/apache/axis/providers/java MsgProvider.java

dims        2004/01/16 21:24:52

  Modified:    java/src/org/apache/axis/providers/java MsgProvider.java
  Log:
  Fix for Bug 26208 - Problem with parsing of body too soon
  
  Revision  Changes    Path
  1.37      +12 -0     ws-axis/java/src/org/apache/axis/providers/java/MsgProvider.java
  
  Index: MsgProvider.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/providers/java/MsgProvider.java,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- MsgProvider.java	22 Apr 2003 19:35:36 -0000	1.36
  +++ MsgProvider.java	17 Jan 2004 05:24:52 -0000	1.37
  @@ -57,13 +57,16 @@
   
   import org.apache.axis.AxisFault;
   import org.apache.axis.MessageContext;
  +import org.apache.axis.handlers.soap.SOAPService;
   import org.apache.axis.description.OperationDesc;
  +import org.apache.axis.description.ServiceDesc;
   import org.apache.axis.i18n.Messages;
   import org.apache.axis.message.SOAPBodyElement;
   import org.apache.axis.message.SOAPEnvelope;
   import org.w3c.dom.Document;
   import org.w3c.dom.Element;
   
  +import javax.xml.namespace.QName;
   import java.lang.reflect.Method;
   import java.util.Vector;
   
  @@ -104,6 +107,15 @@
           throws Exception
       {
           OperationDesc operation = msgContext.getOperation();
  +        SOAPService service = msgContext.getService();
  +        ServiceDesc serviceDesc = service.getServiceDescription();
  +        
  +        if (operation == null) {
  +            QName qname = new QName(reqEnv.getBody().getNamespaceURI(),
  +                    reqEnv.getBody().getLocalName());
  +            operation = serviceDesc.getOperationByElementQName(qname);
  +        }
  +
           if (operation == null) {
               throw new AxisFault(Messages.getMessage("noOperationForQName",
                                                       reqEnv.getFirstBody().