2013-10-21 13 views
15

Używam appengine-maven-plugin do zbudowania mojego projektu Java App Engine.Maven: rozmiar pliku binarnego zmienia rozmiar pliku po kompilacji

I to .p12 świadectw w WEB-INF podkatalogu

Kiedy budować mój wniosek, rozmiar pliku podwyżek certyfikatu przez kilku KB. To powoduje, że jest on nieważny. Widziałem to samo z certyfikatami .jks.

Sprawdziłem poprawność wstępnej wersji certyfikatu i użyłem tej samej metody, aby potwierdzić nieważność certyfikatu końcowego.

Czy ktoś może mi powiedzieć, dlaczego rozmiar pliku się zmienia i dlaczego nie jest po prostu skopiowany do WAR?

Dzięki za pomoc.

+0

Powinieneś pokazać nam swoją pom, lub pom, która może odtworzyć problem. –

Odpowiedz

22

Innym rozwiązaniem jest wyłączenie filtrowania plików .p12 w całym projekcie, dodając następujący 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> 
9

Wydaje się, że Maven zastosował filtrowanie do mojego pliku certyfikatu

http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

Rozwiązaniem było ją wyłączyć

<resource> 
    <directory>${basedir}/src/main/webapp/certs</directory> 
    <filtering>false</filtering> 
    <targetPath>WEB-INF/classes</targetPath> 
</resource> 

Pozwoliło to świadectwo należy poprawnie czytać i rozwiązać następujący wyjątek w 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) 
0

I rozwiązać problem przez przesunięcie”plik .p12' jeden katalog wyżej. Dlatego zamiast trzymać go w WEB-INF, przeniosłem go do katalogu "webapp". Nie ma tam żadnego filtrowania.