【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对象,它现在可以工作了。
推荐阅读
- 如何在窗口更改时动态调整applet组件的大小()
- applet - 浏览器不显示java applet
- Applet加载来自不同域的jar;从坛子加载资源(例如图像)有问题
- JApplet(设置框架的大小)
- 无法读取AppletViewer属性文件 - Applet
- Java Applet无法加载,但浏览器显示 标签
- 在尝试连接到applet进行调试时,'shmemBase_attach失败(系统无法找到指定的文件')
- Applet(未声明类型为long的静态最终serialVersionUID字段)
- 无法执行Applet程序(applet是未初始化)