Hello,

I am trying to implement a basic invoke-catch example. In the process,I am
invoking a web service which returns javax.xml.soap.SOAPException and trying
to catch it. Instead, the process waits for the timeout duration and
throws java.util.concurrent.TimeoutException.

SOAP message I receive after the invocation is:
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing";>
<wsa:Action>urn:getTimeStampSOAPException</wsa:Action>
<wsa:RelatesTo>uuid:hqejbhcnphr6gimjso97tk</wsa:RelatesTo>
</soapenv:Header>
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>Failed deliberately.</faultstring>
<detail />
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>

In the BPEL process, catch entity is:
<bpel:catch faultName="ns:SOAPException" faultVariable="invokeError"
element="ns:SOAPException" faultElement="ns:SOAPException">

I attached wsdl of the component service.

I think I am missing a basic thing
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:ns1="http://org.apache.axis2/xsd"; xmlns:ns="http://deployment.ws.sac12.ozu"; xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"; targetNamespace="http://deployment.ws.sac12.ozu";>
    <wsdl:documentation>Burada servisi anlat! </wsdl:documentation>
    <wsdl:types>
        <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://deployment.ws.sac12.ozu";>
            <xs:element name="setCycle">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="cycle" type="xs:int"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:complexType name="Exception">
                <xs:sequence>
                    <xs:element minOccurs="0" name="Exception" nillable="true" type="xs:anyType"/>
                </xs:sequence>
            </xs:complexType>
            <xs:element name="SOAPException">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="SOAPException" nillable="true" type="xs:anyType"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="getTimeStampResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:schema>
    </wsdl:types>
    <wsdl:message name="startAvailControllerRequest"/>
    <wsdl:message name="getTimeStampRequest"/>
    <wsdl:message name="getTimeStampResponse">
        <wsdl:part name="parameters" element="ns:getTimeStampResponse"/>
    </wsdl:message>
    <wsdl:message name="SOAPException">
        <wsdl:part name="parameters" element="ns:SOAPException"/>
    </wsdl:message>
    <wsdl:message name="setCycleRequest">
        <wsdl:part name="parameters" element="ns:setCycle"/>
    </wsdl:message>
    <wsdl:portType name="TimeStampAvailPortType">
        <wsdl:operation name="startAvailController">
            <wsdl:input message="ns:startAvailControllerRequest" wsaw:Action="urn:startAvailController"/>
        </wsdl:operation>
        <wsdl:operation name="getTimeStamp">
            <wsdl:input message="ns:getTimeStampRequest" wsaw:Action="urn:getTimeStamp"/>
            <wsdl:output message="ns:getTimeStampResponse" wsaw:Action="urn:getTimeStampResponse"/>
            <wsdl:fault message="ns:SOAPException" name="SOAPException" wsaw:Action="urn:getTimeStampSOAPException"/>
        </wsdl:operation>
        <wsdl:operation name="setCycle">
            <wsdl:input message="ns:setCycleRequest" wsaw:Action="urn:setCycle"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="TimeStampAvailSoap11Binding" type="ns:TimeStampAvailPortType">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; style="document"/>
        <wsdl:operation name="startAvailController">
            <soap:operation soapAction="urn:startAvailController" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
        </wsdl:operation>
        <wsdl:operation name="getTimeStamp">
            <soap:operation soapAction="urn:getTimeStamp" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="SOAPException">
                <soap:fault use="literal" name="SOAPException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="setCycle">
            <soap:operation soapAction="urn:setCycle" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="TimeStampAvailSoap12Binding" type="ns:TimeStampAvailPortType">
        <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"; style="document"/>
        <wsdl:operation name="startAvailController">
            <soap12:operation soapAction="urn:startAvailController" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
        </wsdl:operation>
        <wsdl:operation name="getTimeStamp">
            <soap12:operation soapAction="urn:getTimeStamp" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="SOAPException">
                <soap12:fault use="literal" name="SOAPException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="setCycle">
            <soap12:operation soapAction="urn:setCycle" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="TimeStampAvailHttpBinding" type="ns:TimeStampAvailPortType">
        <http:binding verb="POST"/>
        <wsdl:operation name="startAvailController">
            <http:operation location="TimeStampAvail/startAvailController"/>
            <wsdl:input>
                <mime:content type="text/xml" part="startAvailController"/>
            </wsdl:input>
        </wsdl:operation>
        <wsdl:operation name="getTimeStamp">
            <http:operation location="TimeStampAvail/getTimeStamp"/>
            <wsdl:input>
                <mime:content type="text/xml" part="getTimeStamp"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="text/xml" part="getTimeStamp"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="setCycle">
            <http:operation location="TimeStampAvail/setCycle"/>
            <wsdl:input>
                <mime:content type="text/xml" part="setCycle"/>
            </wsdl:input>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="TimeStampAvail">
        <wsdl:port name="TimeStampAvailHttpSoap11Endpoint" binding="ns:TimeStampAvailSoap11Binding">
            <soap:address location="http://127.0.0.1:8080/axis2/services/TimeStampAvail.TimeStampAvailHttpSoap11Endpoint/"/>
        </wsdl:port>
        <wsdl:port name="TimeStampAvailHttpSoap12Endpoint" binding="ns:TimeStampAvailSoap12Binding">
            <soap12:address location="http://127.0.0.1:8080/axis2/services/TimeStampAvail.TimeStampAvailHttpSoap12Endpoint/"/>
        </wsdl:port>
        <wsdl:port name="TimeStampAvailHttpEndpoint" binding="ns:TimeStampAvailHttpBinding">
            <http:address location="http://127.0.0.1:8080/axis2/services/TimeStampAvail.TimeStampAvailHttpEndpoint/"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

Reply via email to