Search in sources :

Example 6 with InterruptionFaultDetail

use of org.talend.schemas.esb.locator._2011._11.InterruptionFaultDetail in project tesb-rt-se by Talend.

the class LocatorSoapServiceImpl method lookupEndpoints.

/**
 * For the given service name return list of endpoint references currently
 * registered at the service locator server endpoints.
 *
 * @param serviceName
 *            the name of the service for which to get the endpoints, must
 *            not be <code>null</code>
 * @return EndpointReferenceListType encapsulate list of endpoint references
 *         or <code>null</code>
 */
List<W3CEndpointReference> lookupEndpoints(QName serviceName, MatcherDataType matcherData) throws ServiceLocatorFault, InterruptedExceptionFault {
    SLPropertiesMatcher matcher = createMatcher(matcherData);
    List<String> names = null;
    List<W3CEndpointReference> result = new ArrayList<W3CEndpointReference>();
    String adress;
    try {
        initLocator();
        if (matcher == null) {
            names = locatorClient.lookup(serviceName);
        } else {
            names = locatorClient.lookup(serviceName, matcher);
        }
    } catch (ServiceLocatorException e) {
        ServiceLocatorFaultDetail serviceFaultDetail = new ServiceLocatorFaultDetail();
        serviceFaultDetail.setLocatorFaultDetail(serviceName.toString() + "throws ServiceLocatorFault");
        throw new ServiceLocatorFault(e.getMessage(), serviceFaultDetail);
    } catch (InterruptedException e) {
        InterruptionFaultDetail interruptionFaultDetail = new InterruptionFaultDetail();
        interruptionFaultDetail.setInterruptionDetail(serviceName.toString() + "throws InterruptionFault");
        throw new InterruptedExceptionFault(e.getMessage(), interruptionFaultDetail);
    }
    if (names != null && !names.isEmpty()) {
        for (int i = 0; i < names.size(); i++) {
            adress = names.get(i);
            result.add(buildEndpoint(serviceName, adress));
        }
    } else {
        if (LOG.isLoggable(Level.WARNING)) {
            LOG.log(Level.WARNING, "lookup Endpoints for " + serviceName + " failed, service is not known.");
        }
        ServiceLocatorFaultDetail serviceFaultDetail = new ServiceLocatorFaultDetail();
        serviceFaultDetail.setLocatorFaultDetail("lookup Endpoint for " + serviceName + " failed, service is not known.");
        throw new ServiceLocatorFault("Can not find Endpoint", serviceFaultDetail);
    }
    return result;
}
Also used : ArrayList(java.util.ArrayList) SLPropertiesMatcher(org.talend.esb.servicelocator.client.SLPropertiesMatcher) ServiceLocatorFault(org.talend.services.esb.locator.v1.ServiceLocatorFault) InterruptedExceptionFault(org.talend.services.esb.locator.v1.InterruptedExceptionFault) SimpleEndpoint(org.talend.esb.servicelocator.client.SimpleEndpoint) SLEndpoint(org.talend.esb.servicelocator.client.SLEndpoint) ServiceLocatorFaultDetail(org.talend.schemas.esb.locator._2011._11.ServiceLocatorFaultDetail) InterruptionFaultDetail(org.talend.schemas.esb.locator._2011._11.InterruptionFaultDetail) W3CEndpointReference(javax.xml.ws.wsaddressing.W3CEndpointReference) ServiceLocatorException(org.talend.esb.servicelocator.client.ServiceLocatorException)

Aggregations

ServiceLocatorException (org.talend.esb.servicelocator.client.ServiceLocatorException)6 InterruptionFaultDetail (org.talend.schemas.esb.locator._2011._11.InterruptionFaultDetail)6 ServiceLocatorFaultDetail (org.talend.schemas.esb.locator._2011._11.ServiceLocatorFaultDetail)6 InterruptedExceptionFault (org.talend.services.esb.locator.v1.InterruptedExceptionFault)6 ServiceLocatorFault (org.talend.services.esb.locator.v1.ServiceLocatorFault)6 SLEndpoint (org.talend.esb.servicelocator.client.SLEndpoint)2 SLPropertiesMatcher (org.talend.esb.servicelocator.client.SLPropertiesMatcher)2 SimpleEndpoint (org.talend.esb.servicelocator.client.SimpleEndpoint)2 ArrayList (java.util.ArrayList)1 DOMResult (javax.xml.transform.dom.DOMResult)1 W3CEndpointReference (javax.xml.ws.wsaddressing.W3CEndpointReference)1 W3CEndpointReferenceBuilder (javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder)1 BindingType (org.talend.esb.servicelocator.client.BindingType)1 SLProperties (org.talend.esb.servicelocator.client.SLProperties)1 SLPropertiesImpl (org.talend.esb.servicelocator.client.SLPropertiesImpl)1 TransportType (org.talend.esb.servicelocator.client.TransportType)1 EndpointTransformerImpl (org.talend.esb.servicelocator.client.internal.EndpointTransformerImpl)1 EntryType (org.talend.schemas.esb.locator._2011._11.EntryType)1 Document (org.w3c.dom.Document)1