`

IC卡在java程序里的应用(B/S模式)

 
阅读更多

  最近的项目是消费卡应用M1卡,用的是深圳明华澳汉公司的,开始之后,了解到用JNI,加载dll库,然后就找他们的客服要了M1卡的dll库,按照他们提供的java示例做下来后,在本机运行时可以读出卡内自带的序列号,有点小激动,结果程序打成war包发布到tomcat下时,就读不出来了,在其他人的电脑上访问我本地运行的程序也读不出来,找了半天原因一筹莫展,问他们的客服也不知道是什么原因。

  后面同事提示我说,你这样肯定是不行的,web访问其他人的机器访问不了你的那些库,然后提到说可以用ActiveX,然后我就问客服说他们有没有类似的ActiveX库,然后他找了找之后就给我发了一个带有cab文件是和说明文档以及示例程序的包。在我的程序里,加上了object标签引入cab包,但是碰到个问题,IE不提示说要加载ActiveX控件,后面调试了一两个小时,将那个cab文件放在了webapp下面,就可以了。这里有一点值的注意的是,由于是提供给我ActiveX控件未签名的,所以需要在Internet选项里设置自定义级别,将下载未签名的ActiveX控件改为'提示'。

  后面又碰到一个比较奇怪的问题,在我们的框架(springMVC+SH)之下,按F5刷新或者退出系统重新登录后,再去通过读写器读卡时链接不上,提示“打开读写器失败,错误代码为-32”,后面找了很多办法都没解决,直到后面先是改为弹出窗体,以免在刷新页面的时候会对OBJECT标签引入的ActiveX有影响,就解决了这个问题。不过出于客户体验的问题,改为用iframe的方式替代弹出窗体的形式。

 

  一般为了解决一些B/S下无法实现的功能,通常用到ActiveX技术来解决,例如报表打印、大数据上传、硬件控制、与第三方CS程序通信等等

1,首先需要开发ActiveX插件(一般用VB、VC等编写)
2,部署到服务器上用object标签
3,客户端浏览器需要加载此插件(很多浏览器都默认拒绝)
4,插件的功能通常用js来调用

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics