String soapAction = (String)event.getMessage().getProperty(AxisConnector.SOAP_ACTION_PROPERTY);
String soapAction = (String)event.getMessage().getProperty(SoapConstants.SOAP_ACTION_PROPERTY);
    protected Call getCall(UMOEvent event, Object[] args) throws Exception    {        UMOEndpointURI endpointUri = event.getEndpoint().getEndpointURI();        Object method = event.getMessage().getProperty(SoapConstants.SOAP_METHOD_PROPERTY);        if (method == null) {            method = event.getEndpoint().getEndpointURI().getParams().getProperty(SoapConstants.SOAP_METHOD_PROPERTY);        }        if (method == null) {            throw new DispatchException(new org.mule.config.i18n.Message("soap", 4), event.getMessage(),                    event.getEndpoint());        } else if(method instanceof SoapMethod) {            if(callParameters==null) {                callParameters = new HashMap();            }            callParameters.put(((SoapMethod)method).getName().getLocalPart(), method);        }        Call call = (Call)service.createCall();        String style = event.getMessage().getStringProperty("style", null);        String use = event.getMessage().getStringProperty("use", null);        // Note that Axis has specific rules to how these two variables are        // combined. This is handled for us        // Set style: RPC/wrapped/Doc/Message        if (style != null) {            Style s = Style.getStyle(style);            if (s == null) {                throw new IllegalArgumentException(new org.mule.config.i18n.Message(                        Messages.VALUE_X_IS_INVALID_FOR_X, style, "style").toString());            }            else {                call.setOperationStyle(s);            }        }        // Set use: Endcoded/Literal        if (use != null) {            Use u = Use.getUse(use);            if (u == null) {                throw new IllegalArgumentException(new org.mule.config.i18n.Message(                        Messages.VALUE_X_IS_INVALID_FOR_X, use, "use").toString());            }            else {                call.setOperationUse(u);            }        }        // set properties on the call from the endpoint properties        BeanUtils.populateWithoutFail(call, event.getEndpoint().getProperties(), false);        call.setTargetEndpointAddress(endpointUri.getAddress());        String methodNamespace = null;        if(method instanceof String) {            //Set a custome method namespace if one is set.  This will be used forthe parameters too            methodNamespace = (String) event.getMessage().getProperty(AxisConnector.METHOD_NAMESPACE_PROPERTY);            if (methodNamespace != null) {                call.setOperationName(new QName(methodNamespace, method.toString()));            } else {                call.setOperationName(new QName(method.toString()));            }        } else if(method instanceof QName){            call.setOperationName((QName)method);            method = ((QName)method).getLocalPart();        } else {            call.setOperationName(((SoapMethod)method).getName());        }        methodNamespace = call.getOperationName().getNamespaceURI();        // set Mule event here so that handlers can extract info        call.setProperty(MuleProperties.MULE_EVENT_PROPERTY, event);        call.setProperty(MuleProperties.MULE_ENDPOINT_PROPERTY, event.getEndpoint());        // Set timeout        call.setTimeout(new Integer(event.getTimeout()));        // Add User Creds        if (endpointUri.getUserInfo() != null) {            call.setUsername(endpointUri.getUsername());            call.setPassword(endpointUri.getPassword());        }        Map methodCalls = (Map) event.getMessage().getProperty("soapMethods");        if (methodCalls == null && !(method instanceof SoapMethod)) {            List params = new ArrayList();            for (int i = 0; i < args.length; i++) {                if (args[i] == null) {                    QName qname = call.getTypeMapping().getTypeQName(Object.class);                    params.add("value" + i + ";qname{" + qname.getPrefix() + ":" + qname.getLocalPart()                            + ":" + qname.getNamespaceURI() + "};in");                }                else if (args[i] instanceof DataHandler[]) {                    params.add("attachments;qname{DataHandler:http://xml.apache.org/xml-soap};in");                    // Convert key/value pairs into the parameters                }                else if (args[i] instanceof Map && connector.isTreatMapAsNamedParams()) {                    for (Iterator iterator = ((Map)args[i]).entrySet().iterator(); iterator.hasNext();) {                        Map.Entry entry = (Map.Entry)iterator.next();                        if (call.getTypeMapping().getTypeQName(entry.getValue().getClass()) != null) {                            QName type = call.getTypeMapping().getTypeQName(entry.getValue().getClass());                            params.add("qname{" + entry.getKey().toString()                                    + (methodNamespace == null ? "" : ":" + methodNamespace)                                    + "};qname{" + type.getPrefix() + ":" + type.getLocalPart() + ":"                                    + type.getNamespaceURI() + "};in");                        }                        else {                            params.add("value" + i + ";qname{"                                    + Types.getLocalNameFromFullName(args[i].getClass().getName()) + ":"                                    + Namespaces.makeNamespace(args[i].getClass().getName()) + "};in");                            params.add("qname{" + entry.getKey().toString()                                    + (methodNamespace == null ? "" : ":" + methodNamespace)                                    + "};qname{"                                    + Types.getLocalNameFromFullName(args[i].getClass().getName()) + ":"                                    + Namespaces.makeNamespace(args[i].getClass().getName()) + "};in");                        }                    }                }                else if (call.getTypeMapping().getTypeQName(args[i].getClass()) != null) {                    QName qname = call.getTypeMapping().getTypeQName(args[i].getClass());                    params.add("value" + i + ";qname{" + qname.getPrefix() + ":" + qname.getLocalPart()                            + ":" + qname.getNamespaceURI() + "};in");                }                else {                    params.add("value" + i + ";qname{"                            + Types.getLocalNameFromFullName(args[i].getClass().getName()) + ":"                            + Namespaces.makeNamespace(args[i].getClass().getName()) + "};in");                }            }            HashMap map = new HashMap();            map.put(method, params);            event.getMessage().setProperty("soapMethods", map);        }        setCallParams(call, event, call.getOperationName());        // Set custom soap action if set on the event or endpoint        String soapAction = (String)event.getMessage().getProperty(AxisConnector.SOAP_ACTION_PROPERTY);        if (soapAction != null) {            soapAction = parseSoapAction(soapAction, call.getOperationName(), event);            call.setSOAPActionURI(soapAction);            call.setUseSOAPAction(Boolean.TRUE.booleanValue());        }        else {            call.setSOAPActionURI(endpointUri.getAddress());        }        //Add any attachments to the call        for (Iterator iterator = event.getMessage().getAttachmentNames().iterator(); iterator.hasNext();) {            String name = (String)iterator.next();            DataHandler dh = event.getMessage().getAttachment(name);            AttachmentPart part = new AttachmentPart(dh);            call.addAttachmentPart(part);        }        return call;    }