Совместно используемый интерфейс Javacard: lookupAID возвращает AID, но getAppletShareableInterface возвращает ноль

редактировать 2: нашел ошибку. Я попытался инициализировать объект Shareable в конструкторе. В это время клиентский метод регистрации еще не вызывается, поэтому у JCRE нет его AID. Хотя метод getShareableInterfaceObject (AID clientaid, параметр байта) моего сервера не требует, чтобы AID клиента был! = Null, JCRE, вероятно, делает это, поскольку он вызывает этот метод для моего клиента. Теперь я инициализирую свой Shareable объект при обработке моего первого APDU, и теперь он работает.

И, между прочим, спасибо owlstead за помощь в форматировании моего поста. Определенно облегчил чтение!

Я новичок в разработке карт Java и не могу получитьShareable интерфейс для работы.

У меня есть класс интерфейса, объявляющий функцию, которую хочет использовать мой клиентский апплет. Мой серверный апплет реализует этот класс. Мой клиентский апплет ищет AID и пытается получить интерфейс, вызываяgetAppletShareableInterface(), Но это всегда возвращаетсяnull.

Мой серверный апплетgetShareableInterface() состоит из всегоreturn this;так что я думаю, что вина лежит в другом месте. Но я понятия не имею, где.

Я использую JCWDE и пошагово перебираю код. Я вижу, что мой серверный апплет регистрирует вызовы, чтобы клиентский апплет мог его найти. Кто-нибудь может дать мне несколько советов, что может пойти не так?

редактировать:

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 возвращает правильный AID, но getAppletShareableInterfaceObject возвращает ноль, как если бы серверный апплет не существовал.

Ответы на вопрос(1)

Ваш ответ на вопрос