Search in sources :

Example 6 with Fault

use of javax.wsdl.Fault in project cxf by apache.

the class WSDLToSoapProcessor method addSoapFaults.

private void addSoapFaults(Operation op, BindingOperation bindingOperation) throws ToolException {
    Map<String, Fault> faults = CastUtils.cast(op.getFaults());
    for (Fault fault : faults.values()) {
        BindingFault bf = wsdlDefinition.createBindingFault();
        bf.setName(fault.getName());
        setSoapFaultExtElement(bf);
        bindingOperation.addBindingFault(bf);
    }
}
Also used : BindingFault(javax.wsdl.BindingFault) BindingFault(javax.wsdl.BindingFault) Fault(javax.wsdl.Fault) SoapFault(org.apache.cxf.binding.soap.wsdl.extensions.SoapFault)

Example 7 with Fault

use of javax.wsdl.Fault in project carbon-business-process by wso2.

the class PartnerService method reply.

private void reply(final BPELMessageContext partnerInvocationContext, final PartnerRoleMessageExchange odeMex, final Operation operation, final MessageContext reply, final boolean isFault) {
    try {
        if (log.isDebugEnabled()) {
            log.debug("Received response for MEX " + odeMex);
        }
        if (isFault) {
            Document odeMsg = DOMUtils.newDocument();
            Element odeMsgEl = odeMsg.createElementNS(null, "message");
            odeMsg.appendChild(odeMsgEl);
            Fault fault = SOAPUtils.parseSoapFault(odeMsgEl, reply.getEnvelope(), operation);
            if (fault != null) {
                if (log.isWarnEnabled()) {
                    log.warn("Fault response: faultName=" + fault.getName() + " faultType=" + fault.getMessage().getQName() + "\n" + DOMUtils.domToString(odeMsgEl));
                }
                QName faultType = fault.getMessage().getQName();
                QName faultName = new QName(wsdlDefinition.getTargetNamespace(), fault.getName());
                Message response = odeMex.createMessage(faultType);
                response.setMessage(odeMsgEl);
                odeMex.replyWithFault(faultName, response);
            } else {
                SOAPFault soapFault = reply.getEnvelope().getBody().getFault();
                QName faultType = new QName(wsdlDefinition.getTargetNamespace(), "UnknownFault");
                Message response = odeMex.createMessage(faultType);
                Element actAsPart = odeMsgEl.getOwnerDocument().createElementNS(null, soapFault.getLocalName());
                odeMsgEl.appendChild(actAsPart);
                if (soapFault.getCode() != null) {
                    actAsPart.appendChild(odeMsgEl.getOwnerDocument().importNode(OMUtils.toDOM(soapFault.getCode()), true));
                }
                if (soapFault.getReason() != null) {
                    actAsPart.appendChild(odeMsgEl.getOwnerDocument().importNode(OMUtils.toDOM(soapFault.getReason()), true));
                }
                if (log.isWarnEnabled()) {
                    log.warn("Fault response: " + DOMUtils.domToString(odeMsgEl));
                }
                response.setMessage(odeMsgEl);
                odeMex.replyWithFault(faultType, response);
            }
        } else {
            Message response = SOAPUtils.parseSOAPResponseFromPartner(partnerInvocationContext, odeMex);
            if (log.isDebugEnabled()) {
                log.debug("Response:\n" + (response.getMessage() != null ? DOMUtils.domToString(response.getMessage()) : "empty"));
            }
            odeMex.reply(response);
        }
    } catch (BPELFault bpelFault) {
        handleError(odeMex, bpelFault);
    } catch (AxisFault axisFault) {
        handleError(odeMex, axisFault);
    }
}
Also used : AxisFault(org.apache.axis2.AxisFault) Message(org.apache.ode.bpel.iapi.Message) QName(javax.xml.namespace.QName) ExtensibilityElement(javax.wsdl.extensions.ExtensibilityElement) Element(org.w3c.dom.Element) SOAPFault(org.apache.axiom.soap.SOAPFault) Fault(javax.wsdl.Fault) AxisFault(org.apache.axis2.AxisFault) SOAPFault(org.apache.axiom.soap.SOAPFault) Document(org.w3c.dom.Document)

Example 8 with Fault

use of javax.wsdl.Fault in project carbon-business-process by wso2.

the class SOAPUtils method parseSoapFault.

public static Fault parseSoapFault(Element odeMsgEl, SOAPEnvelope envelope, Operation operation) throws AxisFault {
    SOAPFault flt = envelope.getBody().getFault();
    SOAPFaultDetail detail = flt.getDetail();
    Fault fdef = inferFault(operation, flt);
    if (fdef == null) {
        return null;
    }
    Part pdef = (Part) fdef.getMessage().getParts().values().iterator().next();
    Element partel = odeMsgEl.getOwnerDocument().createElementNS(null, pdef.getName());
    odeMsgEl.appendChild(partel);
    if (detail.getFirstChildWithName(pdef.getElementName()) != null) {
        partel.appendChild(odeMsgEl.getOwnerDocument().importNode(OMUtils.toDOM(detail.getFirstChildWithName(pdef.getElementName())), true));
    } else {
        partel.appendChild(odeMsgEl.getOwnerDocument().importNode(OMUtils.toDOM(detail), true));
    }
    return fdef;
}
Also used : Part(javax.wsdl.Part) OMElement(org.apache.axiom.om.OMElement) Element(org.w3c.dom.Element) SOAPFaultDetail(org.apache.axiom.soap.SOAPFaultDetail) SOAPFault(org.apache.axiom.soap.SOAPFault) SOAPFault(org.apache.axiom.soap.SOAPFault) Fault(javax.wsdl.Fault) AxisFault(org.apache.axis2.AxisFault) BPELFault(org.wso2.carbon.bpel.core.ode.integration.BPELFault)

Example 9 with Fault

use of javax.wsdl.Fault in project tesb-studio-se by Talend.

the class PublishMetadataRunnable method getAllPaths.

@SuppressWarnings("unchecked")
private Collection<String> getAllPaths() throws URISyntaxException {
    final Set<String> paths = new HashSet<String>();
    final Set<QName> portTypes = new HashSet<QName>();
    final Set<QName> alreadyCreated = new HashSet<QName>();
    for (Binding binding : (Collection<Binding>) wsdlDefinition.getAllBindings().values()) {
        final QName portType = binding.getPortType().getQName();
        if (portTypes.add(portType)) {
            for (BindingOperation operation : (Collection<BindingOperation>) binding.getBindingOperations()) {
                Operation oper = operation.getOperation();
                Input inDef = oper.getInput();
                if (inDef != null) {
                    Message inMsg = inDef.getMessage();
                    addParamsToPath(portType, oper, inMsg, paths, alreadyCreated);
                }
                Output outDef = oper.getOutput();
                if (outDef != null) {
                    Message outMsg = outDef.getMessage();
                    addParamsToPath(portType, oper, outMsg, paths, alreadyCreated);
                }
                for (Fault fault : (Collection<Fault>) oper.getFaults().values()) {
                    Message faultMsg = fault.getMessage();
                    addParamsToPath(portType, oper, faultMsg, paths, alreadyCreated);
                }
            }
        }
    }
    return paths;
}
Also used : Binding(javax.wsdl.Binding) Message(javax.wsdl.Message) QName(javax.xml.namespace.QName) Fault(javax.wsdl.Fault) Operation(javax.wsdl.Operation) BindingOperation(javax.wsdl.BindingOperation) BindingOperation(javax.wsdl.BindingOperation) Input(javax.wsdl.Input) Output(javax.wsdl.Output) Collection(java.util.Collection) HashSet(java.util.HashSet)

Example 10 with Fault

use of javax.wsdl.Fault in project tomee by apache.

the class WsdlVisitor method walkTree.

public void walkTree() {
    begin();
    try {
        visit(definition);
        for (Iterator iterator = definition.getImports().entrySet().iterator(); iterator.hasNext(); ) {
            Map.Entry entry = (Map.Entry) iterator.next();
            String namespaceURI = (String) entry.getKey();
            List importsForNamespace = (List) entry.getValue();
            for (Iterator iterator1 = importsForNamespace.iterator(); iterator1.hasNext(); ) {
                Import anImport = (Import) iterator1.next();
                visit(anImport);
            }
        }
        visit(definition.getTypes());
        Collection messages = definition.getMessages().values();
        for (Iterator iterator = messages.iterator(); iterator.hasNext(); ) {
            Message message = (Message) iterator.next();
            visit(message);
            Collection parts = message.getParts().values();
            for (Iterator iterator2 = parts.iterator(); iterator2.hasNext(); ) {
                Part part = (Part) iterator2.next();
                visit(part);
            }
        }
        Collection services = definition.getServices().values();
        for (Iterator iterator = services.iterator(); iterator.hasNext(); ) {
            Service service = (Service) iterator.next();
            visit(service);
            Collection ports = service.getPorts().values();
            for (Iterator iterator1 = ports.iterator(); iterator1.hasNext(); ) {
                Port port = (Port) iterator1.next();
                visit(port);
                Binding binding = port.getBinding();
                visit(binding);
                List bindingOperations = binding.getBindingOperations();
                for (int i = 0; i < bindingOperations.size(); i++) {
                    BindingOperation bindingOperation = (BindingOperation) bindingOperations.get(i);
                    visit(bindingOperation);
                    visit(bindingOperation.getBindingInput());
                    visit(bindingOperation.getBindingOutput());
                    Collection bindingFaults = bindingOperation.getBindingFaults().values();
                    for (Iterator iterator2 = bindingFaults.iterator(); iterator2.hasNext(); ) {
                        BindingFault bindingFault = (BindingFault) iterator2.next();
                        visit(bindingFault);
                    }
                }
                PortType portType = binding.getPortType();
                visit(portType);
                List operations = portType.getOperations();
                for (int i = 0; i < operations.size(); i++) {
                    Operation operation = (Operation) operations.get(i);
                    visit(operation);
                    {
                        Input input = operation.getInput();
                        visit(input);
                    }
                    {
                        Output output = operation.getOutput();
                        visit(output);
                    }
                    Collection faults = operation.getFaults().values();
                    for (Iterator iterator2 = faults.iterator(); iterator2.hasNext(); ) {
                        Fault fault = (Fault) iterator2.next();
                        visit(fault);
                    }
                }
            }
        }
    } catch (Exception e) {
        LOGGER.error(e.getMessage(), e);
    } finally {
        end();
    }
}
Also used : SOAPBinding(javax.wsdl.extensions.soap.SOAPBinding) Binding(javax.wsdl.Binding) Import(javax.wsdl.Import) Message(javax.wsdl.Message) BindingFault(javax.wsdl.BindingFault) Port(javax.wsdl.Port) Service(javax.wsdl.Service) BindingFault(javax.wsdl.BindingFault) Fault(javax.wsdl.Fault) Operation(javax.wsdl.Operation) BindingOperation(javax.wsdl.BindingOperation) BindingOperation(javax.wsdl.BindingOperation) BindingInput(javax.wsdl.BindingInput) Input(javax.wsdl.Input) Part(javax.wsdl.Part) BindingOutput(javax.wsdl.BindingOutput) Output(javax.wsdl.Output) Iterator(java.util.Iterator) Collection(java.util.Collection) List(java.util.List) Map(java.util.Map) PortType(javax.wsdl.PortType)

Aggregations

Fault (javax.wsdl.Fault)18 Operation (javax.wsdl.Operation)10 BindingOperation (javax.wsdl.BindingOperation)9 QName (javax.xml.namespace.QName)9 BindingFault (javax.wsdl.BindingFault)8 Message (javax.wsdl.Message)7 Input (javax.wsdl.Input)6 Output (javax.wsdl.Output)6 Binding (javax.wsdl.Binding)5 Part (javax.wsdl.Part)5 PortType (javax.wsdl.PortType)4 ArrayList (java.util.ArrayList)3 Collection (java.util.Collection)3 HashSet (java.util.HashSet)3 Map (java.util.Map)3 BindingInput (javax.wsdl.BindingInput)3 BindingOutput (javax.wsdl.BindingOutput)3 SOAPFault (org.apache.axiom.soap.SOAPFault)3 AxisFault (org.apache.axis2.AxisFault)3 Definition (javax.wsdl.Definition)2