2009-10-05 11 views
2

J'utilise hibernate côté serveur avec une application client démarrée via Java Web Start. Je ne peux pas signer les pots (j'aimerais bien mais je ne peux pas). Je reçois une exception d'autorisation lorsque j'obtiens un POJO avec des champs paresseux.Java Web Start: unsigned cglib

Causée par: java.security.AccessControlException: Accès refusé (java.util.PropertyPermission cglib.debugLocation lire) à java.security.AccessControlContext.checkPermission (Source inconnue) à java.security.AccessController.checkPermission (Information inconnue Source) à java.lang.SecurityManager.checkPermission (Source inconnue) à java.lang.SecurityManager.checkPropertyAccess (Source inconnue) à java.lang.System.getProperty (Source inconnue) à net.sf.cglib.core .DebuggingClassWriter. (DebuggingClassWriter.java:35) ... 44 plus

Comment puis-je void ça? J'ai pensé à mettre la collection à zéro avant de retourner le pojo au client mais j'aimerais trouver une meilleure solution.

Répondre

1

Puisque vous ne pouvez pas utiliser les champs Hibernate paresseux non résolus sur le côté client de toute façon (y accéder, causerait le client d'essayer de charger les champs de la db) Je choisirais sur deux options:

  • Si vous avez besoin des données du côté client, vous devez vous assurer que les champs paresseux sont résolus par le serveur avant de renvoyer le POJO au client.

  • Si vous n'avez pas besoin des champs, je les définirais à null.

2

Vous avez deux options:

  • signe tous les pots dans votre application;
  • changement de fournisseur bytecode de cglib à javassist qui n'a pas un tel comportement (par exemple, vous pouvez signer seulement pots nécessaires) .-

Voir aussi des nouvelles en ce qui concerne la question here.

Questions connexes