Grails中的SSL验证错误

Grails中的SSL验证错误,grails,ssl-certificate,Grails,Ssl Certificate,我想在Grails中通过SSL验证发布到url。 我已经导入了证书,并生成了jks文件。 但Grails似乎没有找到这些jks文件。 下面是我正在执行的代码(它位于Grails服务类中): 错误是 “无法在null对象上调用withInputStream()方法” 所以 方法getResource()不工作,返回null 我看到这段代码在functionalTest类中运行良好 有人知道我如何解决这个问题吗 谢谢 问题在于,grails app/services中的非源文件没有复制到类路径中。这

我想在Grails中通过SSL验证发布到url。 我已经导入了证书,并生成了jks文件。 但Grails似乎没有找到这些jks文件。 下面是我正在执行的代码(它位于Grails服务类中):

错误是 “无法在null对象上调用withInputStream()方法” 所以 方法getResource()不工作,返回null

我看到这段代码在functionalTest类中运行良好

有人知道我如何解决这个问题吗


谢谢

问题在于,
grails app/services
中的非源文件没有复制到类路径中。这是
src/java
的情况,但不是
src/groovy
grails-app/conf
也是如此,但这是唯一发生这种情况的
grails-app
文件夹,因为它是配置文件文件夹

因此,最好将文件移动到
grailsapp/conf
并使用

Thread.currentThread().contextClassLoader.getResource(certificate).withInputStream {
    keyStore.load(it, "test1234".toCharArray())
}

我也尝试过使用Thread.currentThread().getContextClassLoader().getResource(证书),但我仍然有同样的问题(返回null)。这是在运行应用程序中,还是在部署的war中,还是在单元或集成测试中?另外-证书文件位于何处?在run app中,证书位于与服务类别相同的文件夹中。isI根据您的反馈编辑了答案-查看这是否适用于您。
Thread.currentThread().contextClassLoader.getResource(certificate).withInputStream {
    keyStore.load(it, "test1234".toCharArray())
}