En bref, ne le faites pas, sauf si la politique de votre entreprise vous y oblige.
La réponse longue
Signer des bocaux revient à dire à votre client : "J'ai créé ce produit et je vous garantis qu'il ne perturbera pas votre système. Si c'est le cas, venez me voir pour un châtiment". C'est pourquoi les jars signés dans les solutions côté client déployées à partir de serveurs distants (applets / webstart) bénéficient de privilèges plus élevés que les solutions non signées.
Pour les solutions côté serveur, où vous n'avez pas à répondre aux exigences de sécurité de la JVM, cette garantie est uniquement destinée à assurer la tranquillité d'esprit de vos clients.
L'inconvénient des jars signés est qu'ils se chargent plus lentement que les jars non signés. Combien plus lent ? C'est lié au CPU, mais j'ai remarqué une augmentation de plus de 100% du temps de chargement. De plus, les correctifs sont plus difficiles (vous devez resigner le jar), les correctifs de classe sont impossibles (toutes les classes d'un même paquet doivent avoir la même source de signature) et la division des jars devient une corvée. Sans oublier que votre processus de construction est plus long et que les certificats appropriés coûtent de l'argent (les certificats auto-signés sont pratiquement inutiles).
Ainsi, à moins que la politique de votre entreprise ne vous y oblige, ne signez pas les jars côté serveur et conservez les jars communs en versions signées et non signées (les versions signées sont destinées au déploiement côté client, les versions non signées sont destinées à la base de code côté serveur).