Javacard Shareable Interface: lookupAID zwraca AID, ale getAppletShareableInterface zwraca null

edytuj 2: Znaleziono błąd. Próbowałem zainicjować obiekt Shareable w konstruktorze. W tym czasie metoda rejestracji klienta nie jest jeszcze wywoływana, więc JCRE nie ma swojej pomocy. Podczas gdy metoda getShareableInterfaceObject (AID clientaid, parametr bajtowy) mojego serwera nie wymaga, aby AID klienta był! = Null, prawdopodobnie JCRE, ponieważ wywołuje tę metodę dla mojego klienta. Teraz inicjuję mój obiekt Shareable, gdy przetwarzam moją pierwszą APDU i teraz działa.

I, dziękuję, dziękuję za pomoc w formatowaniu mojego postu. Zdecydowanie ułatwiłem czytanie!

Jestem nowicjuszem w dziedzinie tworzenia aplikacji Java Card i nie mogę tego zrobićShareable interfejs do pracy.

Mam klasę interfejsu deklarującą funkcję, której aplet klienta chce użyć. Mój aplet serwera implementuje tę klasę. Mój aplet klienta sprawdza AID i próbuje uzyskać interfejs, dzwoniącgetAppletShareableInterface(). Ale to zawsze powracanull.

Mój aplet serweragetShareableInterface() składa się tylko zreturn this;, więc chyba wina leży gdzie indziej. Ale nie mam pojęcia gdzie.

Używam JCWDE i przechodzę przez kod. Widzę, że mój aplet serwera rejestruje się, więc aplet klienta powinien być w stanie go znaleźć. Czy ktoś może dać mi jakieś wskazówki, co może pójść źle?

edytować:

public interface IF extends Shareable {
    public void method();
}

public class Server extends Applet implements IF {
    public getShareableInterfaceObject {
        return this;
    }
}

public class Client extends Applet {

    private Client() {
        AID ServerAID = JCSystem.lookupAID(byteArrayAID, (short)0, (byte)byteArrayAID.length);
        interface = (IF)JCSystem.getAppletShareableInterfaceObject(ServerAID, (byte)0x00);
    }

    public void process(APDU apdu) {
        interface.method();
    }
}

lookupAID zwraca poprawny identyfikator, ale getAppletShareableInterfaceObject zwraca wartość null, tak jakby aplet serwera nie istniał.

questionAnswers(1)

yourAnswerToTheQuestion