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"
        }
    }
}

「web-app」なしで本番環境のp12を配置した理由は、ルートの下の本番環境に直接ファイルが配置されていることに気付いたためですが、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

ファイルの絶対パスを取得する (少しハックな) 方法を次に示します。

まず、ファイルをclasspathどこかに置きます (たとえば、ディレクトリ内の「resources」confディレクトリ)。次に、pathToCertificate行を次のように変更します。

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

これは、ファイル システム上のそのファイルの絶対パスに解決されます。

于 2012-09-21T06:32:32.003 に答える