Springboot框架利用Truelicense验证,服务启动验证时报错

昨天利用truelicense生成了证书文件,今天在项目中加入了验证代码,在项目启动时会安装license.lic证书。但是在启动过程中,报了下面的错误

2020-06-18 08:35:43,464 [INFO] [main] org.springframework.scheduling.quartz.SchedulerFactoryBean [SchedulerFactoryBean.java : 711] Will start Quartz Scheduler [SysScheduler] in 30 seconds
2020-06-18 08:35:43,475 [INFO] [main] com.dhcc.lic.listener.LicenseCheckListener [LicenseCheckListener.java : 58] ++++++++ 开始安装证书 ++++++++
2020-06-18 08:36:05,081 [ERROR] [main] com.dhcc.lic.core.LicenseVerify [LicenseVerify.java : 40] 证书安装失败!
de.schlichtherle.xml.PersistenceServiceException: java.lang.reflect.UndeclaredThrowableException
	at de.schlichtherle.xml.PersistenceService.load(PersistenceService.java:397)
	at de.schlichtherle.xml.PersistenceService.load(PersistenceService.java:455)
	at de.schlichtherle.xml.PersistenceService.load(PersistenceService.java:484)
	at de.schlichtherle.xml.GenericCertificate.getContent(GenericCertificate.java:425)
	at de.schlichtherle.license.LicenseManager.install(LicenseManager.java:432)
	at de.schlichtherle.license.LicenseManager.install(LicenseManager.java:406)
	at de.schlichtherle.license.LicenseManager.install(LicenseManager.java:382)
	at com.dhcc.lic.core.LicenseVerify.install(LicenseVerify.java:37)
	at com.dhcc.lic.listener.LicenseCheckListener.onApplicationEvent(LicenseCheckListener.java:69)
	at com.dhcc.lic.listener.LicenseCheckListener.onApplicationEvent(LicenseCheckListener.java:19)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:400)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:354)
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:886)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:161)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1242)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1230)
	at com.dhcc.SysApplication.main(SysApplication.java:27)
Caused by: java.lang.reflect.UndeclaredThrowableException: null
	at de.schlichtherle.xml.PersistenceService$1.exceptionThrown(PersistenceService.java:79)
	at com.sun.beans.decoder.DocumentHandler.handleException(DocumentHandler.java:359)
	at com.sun.beans.decoder.DocumentHandler$1.run(DocumentHandler.java:385)
	at com.sun.beans.decoder.DocumentHandler$1.run(DocumentHandler.java:372)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at com.sun.beans.decoder.DocumentHandler.parse(DocumentHandler.java:372)
	at java.beans.XMLDecoder$1.run(XMLDecoder.java:201)
	at java.beans.XMLDecoder$1.run(XMLDecoder.java:199)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.beans.XMLDecoder.parsingComplete(XMLDecoder.java:199)
	at java.beans.XMLDecoder.close(XMLDecoder.java:174)
	at de.schlichtherle.xml.PersistenceService.load(PersistenceService.java:395)
	... 24 common frames omitted
Caused by: org.xml.sax.SAXParseException: 文件提前结束。
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
	at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1472)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:1014)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:327)
	at com.sun.beans.decoder.DocumentHandler$1.run(DocumentHandler.java:375)
	... 34 common frames omitted
2020-06-18 08:36:05,082 [INFO] [main] com.dhcc.lic.listener.LicenseCheckListener [LicenseCheckListener.java : 71] ++++++++ 证书安装结束 ++++++++

在论坛上看到fuwen1989相同的错误
但是他这个问题在我这里没有,因此花费了好些时间之后,我发现其实隐藏了另外一个错误才导致的这个问题。问题就是服务端和客户端的 licenseCheck(自定义需要校验的License参数) 的类路径是否一致,比如我在生成证书的服务端这个类的路径是xxx.xxx.license.xxx,但是在我的项目客户端的路径却是xxx.xxx.lic.xxx,因此在项目启动安装证书时其实还是按照服务端的路径去映射查找这个类的,因此导致出现这个错误。
解决方法就是客户端路径改成跟服务端一样就可以了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值