19

Apple プッシュ サービスへの接続に使用している、生成された証明書に問題があります。生成された p12 ファイルが src/main/java フォルダーにある場合はすべて正常に動作しますが、それを src/main/resources に移動すると、次のエラーで動作を停止することにしました。

DerInputStream.getLength(): lengthTag=111, too big.

詳細については、notnoop プッシュ通知ライブラリを使用し、Ray Wenderlich のチュートリアルに従って証明書を生成しました。その後、次のコマンドを使用して、Java で使用する p12 ファイルを生成しました。

openssl x509 -in aps_development.cer -inform DER -out aps_development.pem -outform PEM
openssl pkcs12 -nocerts -in single.p12 -out single.pem
openssl pkcs12 -export -inkey single.pem -in aps_development.pem -out dual.p12

その後、dual.p12 を Java プロジェクトに移動しました。最初、ファイルは /src/main/java フォルダーにありましたcom.company.push.certificates(ファイルを要求するコードは at ですcom.company.push)。を使用して入力ストリームを要求します

InputStream stream = this.getClass().getResourceAsStream("certificates/dual.p12");

これは開発中は正常に機能しますが、(maven を使用して) プロジェクトをビルドするときは機能しません。そのため、まったく同じパッケージを使用して、リソースを resources フォルダーに移動しました。リソースは引き続き見つかりますが、上記のようになりましたjava.io.IOException

誰がこれを引き起こしているのか知っていますか?

Ps: ファイルを src/main/java のパッケージに戻すと、すべて正常に動作するので、証明書は有効であるように見えます。

4

3 に答える 3

16

個人的には、maven ビルドで excludes/includes セクションを複製し、同期を維持する必要がある 2 つのリソース セクションを作成するのは好きではありません。

ビルド セクションのリソース セクションは次のとおりです (さらに、必要な特定のインクルードも含まれます)。

<resources>
   <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>
   </resource>
</resources>

以下を含める場合にフィルタリングしないファイルを maven-resources-plugin に伝えます。

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.7</version>
        <configuration>
            <delimiters>
                <delimiter>@</delimiter>
            </delimiters>
            <nonFilteredFileExtensions>
                <nonFilteredFileExtension>p12</nonFilteredFileExtension>
                <nonFilteredFileExtension>pfx</nonFilteredFileExtension>
                <nonFilteredFileExtension>pem</nonFilteredFileExtension>
            </nonFilteredFileExtensions>
        </configuration>
    </plugin>

参照: http://maven.apache.org/plugins/maven-resources-plugin/examples/binaries-filtering.html

于 2015-02-05T11:49:39.870 に答える