cancel
Showing results for 
Search instead for 
Did you mean: 

Association avec un autre modèle de document

jgautier
Champ in-the-making
Champ in-the-making
Bonjour,

j'ai crée deux nouveaux modèles de document : newModel1 et newmodel2.

J'ai les fichiers suivants :

newModel1Model.xml

<?xml version="1.0" encoding="UTF-8"?>
    <!–Definition of new Model –>
    <model name="myModel1:model" xmlns="http://www.alfresco.org/model/dictionary/1.0">

    <!–Imports are required to allow references to definitions in other models–>
    <imports>
       <!–Import Alfresco Dictionary Definitions –>
       <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d" />
       <!–Import Alfresco Content Domain Model Definitions –>
       <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm" />
    </imports>

    <!–Introduction of new namespaces defined by this model –>
    <namespaces>
       <namespace uri="myModel1.model" prefix="myModel1" />
    </namespaces>
   
   <types>
    <type name="myModel1:myModel1">
       <title>MyModel1</title>
        <parent>cm:content</parent>
      </type>
   </types>
    </model>

myModel2Model.xml

<?xml version="1.0" encoding="UTF-8"?>
    <!–Definition of new Model –>
    <model name="myModel2:model" xmlns="http://www.alfresco.org/model/dictionary/1.0">

    <!–Imports are required to allow references to definitions in other models–>
    <imports>
       <!–Import Alfresco Dictionary Definitions –>
       <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d" />
       <!–Import Alfresco Content Domain Model Definitions –>
       <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm" />
      <import uri="myModel1.model" prefix="myModel1" />
    </imports>

    <!–Introduction of new namespaces defined by this model –>
    <namespaces>
       <namespace uri="myModel2.model" prefix="myModel2" />
    </namespaces>
   
    <types>
       <type name="myModel2:myModel2">
          <title>myModel2</title>
          <parent>cm:content</parent>
        <properties>
         <property name="myModel2:width">
            <title>Width</title>
            <type>d:text</type>
            <mandatory>true</mandatory>
         </property>
         <property name="myModel2:length">
            <title>Length</title>
            <type>d:text</type>
            <mandatory>true</mandatory>
         </property>
        </properties>
        <associations>
            <association name="myModel2:myAssociation">
                    <title>myassociation</title>
                    <source>
                        <mandatory>false</mandatory>
                  <many>false</many>
                    </source>
                    <target>
                        <class>myModel1:myModel1</class>
                        <mandatory>false</mandatory>
                  <many>true</many>
                    </target>
            </association>
         </associations>
        </type>
    </types>
    </model>

web-client-config-custom.xml



   <config evaluator="node-type" condition="myModel2:myModel2">
          <property-sheet>    
         <show-association name="myModel2:myAssociation" />
          </property-sheet>     
      </config>



Je veux ainsi que lorsque je crée un document myModel2 je puisse lier un (ou plusieurs) documents de type myModel1.
Mais j'ai l'erreur suivante :

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'extension.dictionaryBootstrap' defined in file [C:\Alfresco\tomcat\shared\classes\alfresco\extension\example-model-context.xml]: Invocation of init method failed; nested exception is org.alfresco.service.cmr.dictionary.DictionaryException: 03280001 Could not import bootstrap model alfresco/extension/myModel2.xml
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1401)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:512)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
   at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:557)
   at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:842)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:416)
   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261)
   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:192)
   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
   at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:63)
   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467)
   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
   at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
   at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)
   at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
   at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
   at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
   at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
   at org.apache.catalina.core.StandardService.start(StandardService.java:519)
   at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.alfresco.service.cmr.dictionary.DictionaryException: 03280001 Could not import bootstrap model alfresco/extension/myModel2.xml
   at org.alfresco.repo.dictionary.DictionaryBootstrap.onDictionaryInit(DictionaryBootstrap.java:158)
   at org.alfresco.repo.dictionary.DictionaryBootstrap.bootstrap(DictionaryBootstrap.java:105)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1529)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1468)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1398)
   … 37 more
Caused by: org.alfresco.service.cmr.dictionary.DictionaryException: 03280000 Failed to compile model myModel2:model
   at org.alfresco.repo.dictionary.CompiledModel.<init>(CompiledModel.java:106)
   at org.alfresco.repo.dictionary.M2Model.compile(M2Model.java:128)
   at org.alfresco.repo.dictionary.DictionaryDAOImpl.putModel(DictionaryDAOImpl.java:270)
   at org.alfresco.repo.dictionary.DictionaryBootstrap.onDictionaryInit(DictionaryBootstrap.java:154)
   … 45 more
Caused by: org.alfresco.service.namespace.NamespaceException: URI myModel1.model cannot be imported as it is not defined (with prefix myModel1
   at org.alfresco.repo.dictionary.CompiledModel.createLocalPrefixResolver(CompiledModel.java:203)
   at org.alfresco.repo.dictionary.CompiledModel.constructDefinitions(CompiledModel.java:128)
   at org.alfresco.repo.dictionary.CompiledModel.<init>(CompiledModel.java:88)
   … 48 more

Quelqu'un aurait-il une idée d'où l'erreur peut provenir ?

Merci d'avance.
20 REPLIES 20

bertrandf
Champ on-the-rise
Champ on-the-rise
Je ne vois aucune erreur dans l'ensemble des fichiers fournis.

Je suppose que vous travaillez sur un Alfresco de test.
Avez-vous essayé en repartant sur une nouvelle instance ?

Je suppose que le problème vient du fait que vous avez trituré vos modèles.

J'ai copié vos fichiers et je les ai placé dans shared/classes/alfresco/extension et je n'ai aucune erreur au démarrage.

jgautier
Champ in-the-making
Champ in-the-making
Oui c'est un environnement de test.

Ce que je ne comprends pas c'est pourquoi cela fonctionnerait dans un sens mais pas dans l'autre ?!
Cela vient certainement du fait que j'ai fait l'association dans un sens puis dans l'autre.

Merci de votre aide je vais essayer de repartir de zéro.

jgautier
Champ in-the-making
Champ in-the-making
Bon j'ai beau essayé n'importe quoi, cela ne fonctionne toujours pas.

Si quelqu'un a une idée, je suis preneur !

bertrandf
Champ on-the-rise
Champ on-the-rise
Quand vous dites cela ne fonctionne toujours pas, cela signifie que vous avez toujours la même erreur dans les logs ?

Pouvez expliquer quels fichiers vous avez ajouté et à quel(s) endroit(s) svp.

Je trouve cela bizarre que ça ne fonctionne pas sur instance "propre" (RAZ de la base et du alf_data).

jgautier
Champ in-the-making
Champ in-the-making
Ah vous parliez d'une remise à zéro totale.
Moi j'ai juste nettoyé mes modèles et j'ai toujours la même erreur.

Sinon qu'est-ce que vous appelez le alf_data ?
N'y a t-il pas quelque chose que je pourrais "nettoyer" pour que mon modèle soit pris en compte ?

bertrandf
Champ on-the-rise
Champ on-the-rise
C'est franchement pas évident de vous aider, vous ne donnez pas assez de détails sur ce que vous faites.

De ce que j'ai compris, vous avez réalisé des modèles perso, je suppose que vous avez typé des fichiers avec dans votre alfresco.
Après vous avez complétement modifié vos modèles et vous espérez que tout fonctionne …

Tant que vous faites de l'ajout dans vos modèle (ajout d'aspects, types, propriétés, …), vous n'aurez pas trop de problème, ça devient problématique quand c'est de la suppression et quand vous chamboulez tout, je ne vous en parle même pas …

La solution la plus simple, repartir sur des bases saines (pour moi une instance de test veut dire qu'on peut la ré-initialiser à tout moment, surtout vu les noms de modèles et URI que vous utilisez …).

Si vous voulez à tout pris garder l'instance actuelle, il va falloir faire en sorte d'arriver à démarrer votre instance et de virer les nœuds qui sont typés avec vos types perso.
Une fois le ménage fait (si vous y arrivez), vous pourrez remettre vos nouveaux modèles.

Je ne vois pas quoi vous dire d'autre.

jgautier
Champ in-the-making
Champ in-the-making
Alors je suis parti d'un autre environnement de test propre et j'ai importé les fichiers nécessaires à la création d'un nouveau modèle de document (cf les fichiers listés dans le premier post).

Et j'ai toujours la même erreur. :shock:

Je ne vois pas d'où vient le problème … je continue de chercher !

bertrandf
Champ on-the-rise
Champ on-the-rise
j'ai importé les fichiers nécessaires à la création d'un nouveau modèle

Une fois de plus, vous n'expliquez pas ce que vous faites !
Importer ça signifie quoi ? Vous avez déposé les fichiers dans shared/classes/alfresco/extension/ ? Vous avez déposé les modèles dans Référentiel > Dictionnaire de données > Modèles ?

Vous n'expliquez pas ce que vous faites, vous ne donnez pas votre environnement, …

Moi je veux bien aider mais je ne suis pas devin.


Moi j'ai testé vos modèles sur un Alfresco 3.4.0 Entreprise, j'ai déposé les fichiers example-model-context.xml, newModel1Model.xml et newModel2Model.xml  dans shared/classes/alfresco/extension/ et j'ai personnalisé le share-config-custom.xml de Share pour pouvoir typer un document.
Je n'ai aucune erreur au démarrage et je peux typer un document.

jgautier
Champ in-the-making
Champ in-the-making
Oui "importer" signifie déposer les fichiers dans shared/classes/alfresco/extension/.

Ce que je ne comprends pas c'est pourquoi cela à fonctionné la première fois. Est-ce que le fait d'avoir fait cette première association a pu créer quelque chose qui me donne cette erreur ?
Car même en créant un nouveau modèle et en l'associant dans myModel1 j'ai la même erreur.

Je suis perdu…

jayjayecl
Confirmed Champ
Confirmed Champ
Bon, dernier essai parce que ce n'est vraiment pas évident d'avoir les détails.
S'il vous plaît, prenez un peu de temps pour écrire le prochain message, même s'il est long, et on vous aidera plus facilement …

- Donnez votre version (précise) d'Alfresco
- Effacez vos données d'Alfresco (DROP de la BDD + effacement du contenu de alf_data)
- Donnez le nom (correct) de chaque fichier "model", donnez son contenu, et dites où vous l'avez déposé (dans quel répertoire)
- Donnez le nom (correct) du fichier "context", donnez son contenu, et dites où vous l'avez déposé (dans quel répertoire)
- Donnez le nom (correct) de tout autre fichier que vous avez modifié ou créé, donnez son contenu, et dites où vous l'avez déposé (dans quel répertoire)
- Démarrez Alfresco
- Donnez-nous la trace de logs complète du démarrage

Jusqu'à présent, on a eu droit à des traces de logs correspondant à des configurations erronnées, que vous avez dites corrigées mais produisant les même traces d'erreurs etc … Incompréhensible !

Merci Smiley Happy