Ios Grails:在生产中的web应用程序上查找文件

Ios Grails:在生产中的web应用程序上查找文件,ios,grails,apple-push-notifications,grails-config,Ios,Grails,Apple Push Notifications,Grails Config,我在grails项目的web应用中有一个文件。。在某些apns插件的配置文件中,将配置如下所示 environments { development { apns { pathToCertificate = "web-app/apns-dev.p12" password = "password" environment = "sandbox" } } test

我在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。。那我怎么才能找到它呢?

各州

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

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

这里有一种(稍微有点粗糙的)获取文件绝对路径的方法:

首先,将文件放在
classpath
的某个地方(例如
conf
目录中的“resources”目录)。然后,将
路径证书
行更改为:

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

它应该解析为文件系统中该文件的绝对路径

不行。。我希望我们有一种方法来获得绝对路径,因为它在编译时给了我错误|错误错误打包应用程序:错误加载Config.groovy:没有方法签名:groovy.util.ConfigObject.getResource()适用于参数类型:(java.lang.String)值:[classpath:web-app/web-INF/apns-dev.p12]