Javacard可共享接口(lookupAID返回AID但getAppletShareableInterface返回null)

【Javacard可共享接口(lookupAID返回AID但getAppletShareableInterface返回null)】冲天香阵透长安,满城尽带黄金甲。这篇文章主要讲述Javacard可共享接口:lookupAID返回AID但getAppletShareableInterface返回null相关的知识,希望能为你提供帮助。
编辑2:发现错误。我试图在构造函数中初始化Shareable对象。那时客户端的register方法尚未调用,因此JCRE没有其AID。虽然我的服务器的getShareableInterfaceObject(AID clientaid,byte参数)方法不要求客户端的AID为!= null,但JCRE可能会这样做,因为它为我的客户端调用此方法。我现在在处理我的第一个APDU时初始化我的Shareable对象,它现在可以工作了。
顺便说一下,非常感谢你帮助格式化我的帖子。绝对让它更容易阅读!
我是java Card开发的新手,我不能让我的Shareable界面工作。
我有一个接口类声明我的客户端小程序想要使用的函数。我的服务器applet实现了这个类。我的客户端applet查找AID并尝试通过调用getAppletShareableInterface()获取接口。但这总是会让null回归。
我的服务器小程序的getShareableInterface()只包含return this; ,所以我猜错在其他地方。但我不知道在哪里。
我正在使用JCWDE并逐步执行代码,我看到我的服务器applet调用了寄存器,因此客户端applet应该能够找到它。任何人都可以给我一些可能出错的指示吗?
编辑:

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返回null,就好像服务器applet不存在一样。
答案发现了错误。我试图在构造函数中初始化Shareable对象。那时客户端的register方法尚未调用,因此JCRE没有其AID。虽然我的服务器的getShareableInterfaceObject(AID clientaid,byte参数)方法不要求客户端的AID为!= null,但JCRE可能会这样做,因为它为我的客户端调用此方法。我现在在处理我的第一个APDU时初始化我的Shareable对象,它现在可以工作了。

    推荐阅读