Interfaccia ServiceCallback

I componenti del servizio che necessitano di gestire interazioni di callback asincrono implementano questa interfaccia.

Scopo

Utilizzare il metodo in questa interfaccia per restituire una risposta ad un componente che ha effettuato una richiesta asincrona al servizio. Per riuscire, questo componente deve inoltrare al servizio un ticket quando il client richiama il servizio.

Esempi

Questo programma implementa un servizio che è un'avvertenza per il client.
pacchetto sample.alarm;

import java.util.Date;

import com.ibm.websphere.sca.Service;
import com.ibm.websphere.sca.ServiceCallback;
import com.ibm.websphere.sca.ServiceManager;
import com.ibm.websphere.sca.Ticket;
import com.ibm.websphere.sca.scdl.OperationType;
import com.ibm.websphere.sca.scdl.Reference;
import com.ibm.websphere.sca.sdo.DataFactory;
import commonj.sdo.DataObject;
import commonj.sdo.Type;

/* 
 *  Questo codice implementa l'interfaccia di avvertenza e richiama il timer in modo asincrono. 
 */
public class SimpleDIIAlarmImpl implements SimpleAlarm, ServiceCallback {

    public void setAlarm(String name, int duration) {

        ServiceManager serviceManager = new ServiceManager();

        // Inoltrare la richiesta
        // Ottenere il tipo di input setTimer e creare l'argomento di conseguenza
        Service asyncTimerService = (Service) serviceManager.locateService("timer");
        Reference reference = asyncTimerService.getReference();
        OperationType operationType = reference.getOperationType("startTimer");
        Type inputType = operationType.getInputType();
        DataFactory dataFactory = DataFactory.INSTANCE;
        DataObject input = dataFactory.create(inputType);
        input.set(0, new Integer(duration));
        input.set(1, name);

        // Richiamare il servizio timer
        Ticket ticket = asyncTimerService.invokeAsyncWithCallback("startTimer", input);
        System.out.println("Sent async with callback.");
    }

    /*
     * @see com.ibm.websphere.sca.ServiceCallback#onInvokeResponse
     * (com.ibm.websphere.sca.Ticket, java.lang.Object, java.lang.Exception)
     */
    public void onInvokeResponse(Ticket arg0, Object arg1, Exception arg2) {

        System.out.println("onInvokeResponse()");
        if (arg2 != null) {
            System.out.println("Timer ran into exception: " + arg2.getMessage());
        } else {
            System.out.println("Alarm " + arg1 + " went off at " + new Date(System.currentTimeMillis()));
        }
    }
}
Riferimenti correlati
Interfaccia del componente
Interfaccia EndPointReference
Interfaccia EndPointReferenceFactory
Eccezioni del servizio
Interfaccia InterfaceType
Interfaccia del servizio
Interfaccia ServiceImplAsync
Interfaccia ServiceImplSync
Classe ServiceManager
Interfaccia Ticket
Informazioni correlate
API ServiceCallback interfaccia

Terms of use |

Last updated: Thu Apr 06 14:28:02 2006

(c) Copyright IBM Corporation 2005, 2006.
This information center is powered by Eclipse technology (http://www.eclipse.org)