智能读卡器,无法读卡问题

问题:
使用JAVA CARD技术获取NFC读卡器,读卡器连接时可以正常读卡,读卡器拔出后,再次插上,这时再进行读卡报错SCARD_E_SERVICE_STOPPED,提示找不到资源

 TerminalFactory factory = TerminalFactory.getDefault();
  List<CardTerminal> terminals = factory.terminals().list();
  CardTerminal cardTerminal = terminals.get(0);
  cardTerminal.waitForCardAbsent(0);

通过跟踪,错误信息:

2023/04/24 15:05:41 ERROR [] javax.smartcardio.CardException: waitForCard() failed
    at sun.security.smartcardio.TerminalImpl.waitForCard(TerminalImpl.java:130)
    at sun.security.smartcardio.TerminalImpl.waitForCardPresent(TerminalImpl.java:136)
    at com.digiwin.athena.edge.cardreader.CardReaderService.waitForCardPresent(CardReaderService.java:82)
    at com.digiwin.athena.edge.core.EdgeService.waitForCardPresent(EdgeService.java:41)
    at com.digiwin.athena.edge.cardreader.runner.CardEventRunner.run(CardEventRunner.java:39)
    at java.lang.Thread.run(Thread.java:748)
Caused by: sun.security.smartcardio.PCSCException: SCARD_E_SERVICE_STOPPED
    at sun.security.smartcardio.PCSC.SCardGetStatusChange(Native Method)
    at sun.security.smartcardio.TerminalImpl.waitForCard(TerminalImpl.java:110)
    ... 5 more

如果我想通过程序实现,拔出后,再次插入读卡器,且不用重启服务的方式,可以读到卡
用什么方式可以实现

在使用JAVA CARD技术获取NFC读卡器时,可能会出现某些系统资源未正常释放导致出现该错误。
建议您可以使用以下方法:
1.尝试重新启动NFC服务,在命令行输入“net stop scardsvr”停止服务,然后再输入“net start scardsvr”启动服务。
2.尝试重新安装驱动程序或重装整个系统。
3.检查设备管理器中的设备状态,可以尝试更新驱动程序来解决。
4.尝试升级JAVA CARD SDK版本,以保证JAVA卡片能够正常与读卡器交互。
如果以上方法都没有帮助解决问题,建议您联系相关技术人员或厂商支持。