I am using the appengine-maven-plugin to build my Java Google App Engine project.
I include .p12 certificates in a WEB-INF sub-folder
When I build my applica
It seems that maven was applying filtering to my certificate file
http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html
The solution was to disable it
<resource>
<directory>${basedir}/src/main/webapp/certs</directory>
<filtering>false</filtering>
<targetPath>WEB-INF/classes</targetPath>
</resource>
This allowed the certificate to be read correctly and solved the following exception in JavaPNS
Validating keystore reference: VALID (keystore was found)
Verifying keystore content: javapns.communication.exceptions.KeystoreException:
Keystore exception: DerInputStream.getLength(): lengthTag=111, too big. at javapns.communication.KeystoreManager.wrapKeystoreException(KeystoreManager.java:178)
Another solution is to disable filtering of .p12 files throughout your project by adding the following config:
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>p12</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
</plugins>
</build>
I solved the problem by moving '.p12' file one directory up. So instead of keeping it in WEB-INF, I moved it up to 'webapp' directory. No filtering happens there.