Lockservice : Bad Crendentials presented Exception

cancel
Showing results for 
Search instead for 
Did you mean: 
grégo
Member II

Lockservice : Bad Crendentials presented Exception

Bonjour,

Je rencontre des problèmes avec un CheckOutCheckInService, comme déjà expliqué ici.

J'ai besoin d'effectuer une copie de document dans un autre répertoire et de vérouiller le document original. Pour cette raison je pensais utiliser un CheckOutCheckInService.

Voici mon fichier faces-config-custom.xml:


   <managed-bean>
      <managed-bean-name>NewEditionDialog</managed-bean-name>
      <managed-bean-class>com.alcatellucent.gerard.gdoc.bean.dialog.NewEditionDialog</managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>
      <managed-property>
         <property-name>browseBean</property-name>
         <value>#{BrowseBean}</value>
      </managed-property>
      <managed-property>
         <property-name>checkOutCheckInService</property-name>
         <value>#{CheckOutCheckInService}</value>
      </managed-property>
      <managed-property>
         <property-name>nodeService</property-name>
         <value>#{NodeService}</value>
      </managed-property>
   </managed-bean>

J'appelle ensuite dans mon NewEditionDialog mon service (le setter est correctement déclaré dans mon Dialog).


this.workCopyRef = this.checkOutCheckInService.checkout(documentRef, destSpaceRef, ContentModel.ASSOC_CONTAINS, ContentModel.TYPE_CONTAINER);

Mais le CheckOutCheckInService est désespérément null. Existe-t-il un moyen de forcer l'instanciation d'un service? Via une factory par exemple?

Deuxième problème :

Suite à mes souci de service null j'ai pensé réalisé le lock du fichier et la copie moi-même, en utilisant un copyService et un lockService. Fichier
my faces-config-custom.xml :


<managed-bean>
      <managed-bean-name>NewEditionDialog</managed-bean-name>
      <managed-bean-class>com.alcatellucent.gerard.gdoc.bean.dialog.NewEditionDialog</managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>
      <managed-property>
         <property-name>browseBean</property-name>
         <value>#{BrowseBean}</value>
      </managed-property>
      <managed-property>
         <property-name>nodeService</property-name>
         <value>#{NodeService}</value>
      </managed-property>
      <managed-property>
      <managed-property>
         <property-name>copyService</property-name>
         <value>#{CopyService}</value>
      </managed-property>
      <managed-property>
         <property-name>lockService</property-name>
         <value>#{LockService}</value>
      </managed-property>
   </managed-bean>

Appel aux services :


this.lockService.lock(documentRef, LockType.READ_ONLY_LOCK);
this.workCopyRef = this.copyService.copy(documentRef, destSpaceRef, ContentModel.ASSOC_CONTAINS, ContentModel.TYPE_CONTAINER);

Mais les deux me retournent une BadCredentialsException, apparemment dû à un appel interne à nodeService.getPrimaryParent().

Je désespère, trois jours que je suis là-dessus, j'espère que je pourrai trouver de l'aide ici.

Merci d'avance Smiley Wink
1 Reply
grégo
Member II

Re: Lockservice : Bad Crendentials presented Exception

Ok, premier problème résolu. Pour récupérer l'instance d'un service (ici CheckOutCheckInService), il suffit de faire :


FacesContext fc = FacesContext.getCurrentInstance();
this.checkOutCheckInService = Repository.getServiceRegistry(fc).getCheckOutCheckInService();

Le seul problème est que maintenant, cet appel me lève lui aussi une BadCrendentialspresentedException…