0

我在我的 grails 项目的 web-app 中有一个文件。在一些 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 .. 那么我该如何找到它呢?

4

2 回答 2

1

apns插件页面状态

如果您无权访问服务器的文件系统,您还可以将 pathToCertificate 替换为 certificateResourcePath 并将其设置为您的证书路径,相对于 src/java。因此,例如,如果您的证书在 src/java/mycert.p12 中,则可以设置 certificateResourcePath=mycert.p12。

这可能是您最好的选择,允许您使用相对于 src/java 的路径而不是绝对路径。

于 2012-09-20T22:43:01.477 回答
0

这是获取文件绝对路径的(有点hacky)方法:

首先,将文件放在classpath某个地方(例如目录中的“资源”conf目录)。然后,将您的pathToCertificate行更改为:

pathToCertificate = ApplicationHolder.application.parentContext.getResource("classpath:resources/apns-dev.p12").file.absolutePath

这应该解析为文件系统上该文件的绝对路径。

于 2012-09-21T06:32:32.003 回答