我在我的Grails项目的Web应用程序中有一个文件..在某些APNs插件的配置文件中将配置如下
environments {
development {
apns {
pathToCertificate = "web-app/apns-dev.p12"
password = "password"
environment = "sandbox"
}
}
test {
apns {
pathToCertificate = "web-app/apns-dev.p12"
password = "password"
environment = "sandbox"
}
}
production {
apns {
pathToCertificate = "apns-prod.p12"
password = "password"
environment = "production"
}
}
}
我把生产的P12没有"web-app"的原因是因为我注意到文件直接位于根目录下的生产环境中,但它给了我fileNotFoundException..那么我如何找到它呢?
apns 插件页面状态
如果您无法访问服务器的文件系统,您还可以将 pathToCertificate 替换为 certificateResourcePath,并将其设置为相对于 src/java 的证书路径。例如,如果您的证书位于 src/java/mycert.p12 中,则可以设置 certificateResourcePath=mycert.p12。
这可能是你最好的选择,允许你使用相对于 src/java 的路径而不是绝对路径。
这是获取文件绝对路径的一种(有点笨拙的)方法:
首先,将文件放在classpath
的某个地方(例如,conf
目录中的"资源"目录)。然后,将pathToCertificate
行更改为:
pathToCertificate = ApplicationHolder.application.parentContext.getResource("classpath:resources/apns-dev.p12").file.absolutePath
它应该解析为文件系统上该文件的绝对路径。