Witam, mam następujący problem.

Tworzę stroną internetową opartą o Java WebSockety, używam NetBeansa 8.1 oraz GlassFisha 4.1.1. Wszystko szło dobrze aż do momentu gdy chciałem użyć zewnętrznej biblioteki w moim serwisie - dostawałem wyjątek mówiący o tym, że moja biblioteka nie jest podpisana.

Moim zdaniem ważne jest to, że moja biblioteka korzysta z dość znacznej ilości biblioteki zewnętrznych dla poprawnego działa dlatego zdecydowałem się ją pakować jako Fat Jar (głównie z powodu przejrzystości) za pomocą skryptu z tej strony:

https://dzone.com/articles/how-build-fat-jar-using

Wszystko fajnie się wyeksportowało do jednego pliku .JAR.

Następnie poczytałem, że aby wykorzystać zewn. JAR w moim projekcie aplikacji Webowej muszą ją podpisać ręcznie lub za pomocą zaufanego certyfikatu, jako że nie mam dostępu do zaufanych certyfikatów to postanowiłem podpisać ją ręcznie za pomocą NetBeansa. Wszystko wewnątrz głównego JARu się podpisało lecz dalej otrzymywałem komunikat, że JAR nie jest podpisany.

Po kilku godzinach pomyślałem, że to może dlatego, że wszystko wewnątrz FAT jara jest podpisywane ale on sam już nie więc budowałem projekt normalnie z podziałem na moją bibliotekę i biblioteki zewnętrzne w katalogu lib i wszystko zaczęło działać poprawnie.
Lecz dalej irytowała mnie duża ilość bibliotek zewnętrznych zamiast jednego schludnego pliku JAR dlatego stworzyłem własny KeyStore i podpisałem sam tak wygenerowany plik JAR za pomocą instrukcji z tej strony:

http://timjansen.github.io/jarfiller/javabasics/jar/selfsigning.xhtml

Po przepuszczeniu tego przez jarsigner -verify fatjar.jar otrzymałem potwierdzenie, że plik jest podpisany jednak teraz gdy używam go w projekcie dostaję wyjątek SignatureDoesNotMatch.

Próbuję od kilku godzin różnych kombinacji ale nie potrafię rozgryźć dlaczego wersja podpisana przez NetBeansa bez importu do jednego dużego pliku JAR przechodzi bez problemu lecz podpisanie dużego pliku JAR wyrzuca wyjątek.