AnsweredAssumed Answered

Problème pour implémenter un nouveau modèle de contenu

Question asked by eos_3993 on Apr 16, 2010
Latest reply on Apr 20, 2010 by eos_3993
Bonjour,

Je viens de télécharger le package Alfresco-Community-3.3-Full-Setup, donc j'ai la version Alfresco Community Edition 3.3 avec un serveur  Apache Tomcat 6.0 et un backend mySQL (je ne connais pas la version). 

J'essaie en vain d'implémenter un nouveau modèle de contenu qui serait intitulé "Document Sodifrance" et qui aurait les propriétés en plus suivantes : "Client" et "Projet". Ce modèle de contenu hérite bien sûr du modèle pré configuré d'Alfresco. De plus je veux aussi ajouter un aspect "Typage Document" auquel sont rattachées les propriétés suivantes : "TYP" et N° Chrono". Pour ce faire je me suis aidée des tutoriels donnés par le wiki Alfresco Developers. Dans le dépôt Alfresco, dans le répertoire Alfresco\Tomcat\Shared\Classes\Alfresco\Extension, j'ai créé un fichier exampleModel1.xml :
<?xml version="1.0" encoding="UTF-8"?>

<!– Definition of new Model –>

<model name="sf:sfnewmodel" xmlns="http://www.alfresco.org/model/dictionary/1.0">

   <!– Optional meta-data about the model –>  
   <description>Example custom Model 1</description>
   <author></author>
   <version>1.0</version>

   <!– 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="sf.new.model" prefix="sf"/>
   </namespaces>
  
   <types>
  
      <!– Definition of new Content Type: Document Sodifrance –>
      <type name="sf:docS">
         <title>Document Sodifrance</title>
         <parent>cm:content</parent>
         <properties>
            <property name="sf:client">
               <type>d:text</type>
            </property>
            <property name="sf:projet">
               <type>d:text</type>
            </property>
         </properties>

      </type>
     
    </types>
 
    <aspects>
     
      <!– Definition of new Content Aspect: Typage Document –>
      <aspect name="sf:typageDocument">
         <title>Typage Document</title>
         <properties>
            <property name="sf:typ">
               <type>d:text</type>
            </property>
            <property name="sf:nChrono">
               <type>d:int</type>
            </property>
         </properties>
      </aspect>
     
   </aspects>
  
</model>
Pour le prendre en compte lors du redémarrage du serveur (local), j'ai aussi créé le fichier example-model-context.xml :

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>

    <!– Registration of new models –>   
    <bean id="extension.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
        <property name="models">
            <list>
                <value>alfresco/extension/exampleModel1.xml</value>
            </list>
        </property>
    </bean>
         
</beans>

Enfin, j'ai créé le fichier web-client-config-custom.xml :
<alfresco-config>

   <config evaluator="string-compare" condition="Languages">
      <languages>
          <language locale="fr_FR">French</language>
      </languages>
   </config>

   <!– Example of changing the sort direction for a view in the client –>
   <!–
   <config evaluator="string-compare" condition="Views">
      <views>
         <view-defaults>
            <topic>
               <sort-direction>ascending</sort-direction>
            </topic>
         </view-defaults>
      </views>
   </config>
   –>

   <!– Example of adding a custom icon to the Create Space dialog –>
   <!–
   <config evaluator="string-compare" condition="cm:folder icons">
      <icons>
         <icon name="space-icon-custom" path="/images/icons/space-icon-custom.gif" />
      </icons>
   </config>
   –>

   <!– The config below shows how to incorporate the example model–>
   <!– into the web client, for this to work you will need to –>
   <!– rename example-model-context.xml.sample to example-model-context.xml –>

   <config evaluator="string-compare" condition="Content Wizards">
      <content-types>
         <type name="sf:docS" />
      </content-types>
   </config>

   <config evaluator="node-type" condition="sf:docS">
      <property-sheet>
         <show-property name="mimetype" display-label-id="content_type"
                        component-generator="MimeTypeSelectorGenerator" />
         <show-property name="size" display-label-id="size"
                        converter="org.alfresco.faces.ByteSizeConverter"
                        show-in-edit-mode="false" />              
         <show-property name="sf:client"  />
         <show-property name="sf:projet" />
      </property-sheet>
   </config>

   <config evaluator="aspect-name" condition="sf:typageDocument">
      <property-sheet>
         <show-property name="sf:typ" />
         <show-property name="sf:nChrono" />
       <!–<show-property name="cm:categories"/>–>
      </property-sheet>
   </config>

   <config evaluator="string-compare" condition="Action Wizards">
      <aspects>
         <aspect name="sf:typageDocument"/>
      </aspects>

     <!–<specialisetypes>
        <type name="sf:docS" />
     </specialisetypes>–>
   </config>

   <config evaluator="string-compare" condition="Advanced Search">
      <advanced-search>
         <content-types>
            <type name="sf:docS" />
         </content-types>
         <custom-properties>
            <meta-data type="sf:docS" property="sf:client" />
            <meta-data type="sf:docS" property="sf:projet" />         
            <meta-data aspect="sf:typageDocument" property="sf:typ" />
         </custom-properties>
      </advanced-search>
   </config>

</alfresco-config>

J'ai eu beau redémarrer le serveur, rien ne s'affiche sur le web client Explorer. J'ai alors ajouté, dans l'espace Models de Data Dictionnary mon modèle de contenu(en prenant garde de l'activer) et dans l'espace Web client extension, j'ai ajouté le fichier web-client-config-custom.xml Qand j'ai voulu le reloader, une erreur s'est affichée, comme quoi il ne pouvait reloader le fichier en question :
Web Client config has been reloaded

<Built-in evaluators> —> OK
classpath:alfresco/web-client-config.xml —> OK
classpath:alfresco/web-client-config-dialogs.xml —> OK
classpath:alfresco/web-client-config-wizards.xml —> OK
classpath:alfresco/web-client-config-properties.xml —> OK
classpath:alfresco/web-client-config-navigation.xml —> OK
classpath:alfresco/web-client-config-wcm.xml —> OK
classpath:alfresco/web-client-config-actions.xml —> OK
classpath:alfresco/web-client-config-forum-actions.xml —> OK
classpath:alfresco/web-client-config-wcm-actions.xml —> OK
classpath:alfresco/web-client-config-workflow-actions.xml —> OK
classpath:alfresco/extension/web-client-config-custom.xml —> Skipped - invalid: org.springframework.extensions.config.ConfigException: 03160003 Failed to parse config stream
   at org.springframework.extensions.config.xml.XMLConfigService.parse(XMLConfigService.java:198)
   at org.springframework.extensions.config.BaseConfigService.appendConfig(BaseConfigService.java:251)
   at org.springframework.extensions.config.BaseConfigService.parse(BaseConfigService.java:281)
   at org.springframework.extensions.config.xml.XMLConfigService.initConfig(XMLConfigService.java:131)
   at org.alfresco.repo.config.xml.RepoXMLConfigService.initRepoConfig(RepoXMLConfigService.java:129)
   at org.alfresco.repo.config.xml.RepoXMLConfigService.resetRepoConfig(RepoXMLConfigService.java:195)
   at org.alfresco.repo.config.xml.RepoXMLConfigService.initConfig(RepoXMLConfigService.java:108)
   at org.alfresco.web.config.ConfigAdminInterpreter.executeCommand(ConfigAdminInterpreter.java:129)
   at org.alfresco.repo.admin.BaseInterpreter$1$1.execute(BaseInterpreter.java:155)
   at org.alfresco.repo.admin.BaseInterpreter$1$1.execute(BaseInterpreter.java:153)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:321)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:228)
   at org.alfresco.repo.admin.BaseInterpreter$1.doWork(BaseInterpreter.java:158)
   at org.alfresco.repo.admin.BaseInterpreter$1.doWork(BaseInterpreter.java:149)
   at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:508)
   at org.alfresco.repo.admin.BaseInterpreter.interpretCommand(BaseInterpreter.java:147)
   at org.alfresco.web.bean.admin.ConfigAdminConsoleBean.interpretCommand(ConfigAdminConsoleBean.java:165)
   at org.alfresco.web.bean.admin.ConfigAdminConsoleBean.submitCommand(ConfigAdminConsoleBean.java:141)
   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.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:132)
   at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:61)
   at javax.faces.component.UICommand.broadcast(UICommand.java:109)
   at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
   at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
   at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
   at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
   at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
   at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.alfresco.web.app.servlet.AdminAuthenticationFilter.doFilter(AdminAuthenticationFilter.java:76)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:104)
   at sun.reflect.GeneratedMethodAccessor448.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:116)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
   at $Proxy199.doFilter(Unknown Source)
   at org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.alfresco.repo.web.filter.beans.NullFilter.doFilter(NullFilter.java:68)
   at sun.reflect.GeneratedMethodAccessor448.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:116)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
   at $Proxy199.doFilter(Unknown Source)
   at org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
   at java.lang.Thread.run(Thread.java:619)
Caused by: org.dom4j.DocumentException: Error on line 135 of document  : Invalid byte 1 of 1-byte UTF-8 sequence. Nested exception: Invalid byte 1 of 1-byte UTF-8 sequence.
   at org.dom4j.io.SAXReader.read(SAXReader.java:482)
   at org.dom4j.io.SAXReader.read(SAXReader.java:343)
   at org.springframework.extensions.config.xml.XMLConfigService.parse(XMLConfigService.java:164)
   … 67 more

workspace://SpacesStore/app:company_home/app:dictionary/app:webclient_extension/cm:web-client-config-custom.xml —> Skipped - invalid: org.springframework.extensions.config.ConfigException: 03160004 Failed to parse config stream
   at org.springframework.extensions.config.xml.XMLConfigService.parse(XMLConfigService.java:198)
   at org.springframework.extensions.config.BaseConfigService.appendConfig(BaseConfigService.java:251)
   at org.springframework.extensions.config.BaseConfigService.parse(BaseConfigService.java:281)
   at org.springframework.extensions.config.xml.XMLConfigService.initConfig(XMLConfigService.java:131)
   at org.alfresco.repo.config.xml.RepoXMLConfigService.initRepoConfig(RepoXMLConfigService.java:129)
   at org.alfresco.repo.config.xml.RepoXMLConfigService.resetRepoConfig(RepoXMLConfigService.java:195)
   at org.alfresco.repo.config.xml.RepoXMLConfigService.initConfig(RepoXMLConfigService.java:108)
   at org.alfresco.web.config.ConfigAdminInterpreter.executeCommand(ConfigAdminInterpreter.java:129)
   at org.alfresco.repo.admin.BaseInterpreter$1$1.execute(BaseInterpreter.java:155)
   at org.alfresco.repo.admin.BaseInterpreter$1$1.execute(BaseInterpreter.java:153)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:321)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:228)
   at org.alfresco.repo.admin.BaseInterpreter$1.doWork(BaseInterpreter.java:158)
   at org.alfresco.repo.admin.BaseInterpreter$1.doWork(BaseInterpreter.java:149)
   at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:508)
   at org.alfresco.repo.admin.BaseInterpreter.interpretCommand(BaseInterpreter.java:147)
   at org.alfresco.web.bean.admin.ConfigAdminConsoleBean.interpretCommand(ConfigAdminConsoleBean.java:165)
   at org.alfresco.web.bean.admin.ConfigAdminConsoleBean.submitCommand(ConfigAdminConsoleBean.java:141)
   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.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:132)
   at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:61)
   at javax.faces.component.UICommand.broadcast(UICommand.java:109)
   at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
   at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
   at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
   at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
   at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
   at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.alfresco.web.app.servlet.AdminAuthenticationFilter.doFilter(AdminAuthenticationFilter.java:76)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:104)
   at sun.reflect.GeneratedMethodAccessor448.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:116)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
   at $Proxy199.doFilter(Unknown Source)
   at org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.alfresco.repo.web.filter.beans.NullFilter.doFilter(NullFilter.java:68)
   at sun.reflect.GeneratedMethodAccessor448.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:116)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
   at $Proxy199.doFilter(Unknown Source)
   at org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
   at java.lang.Thread.run(Thread.java:619)
Caused by: org.dom4j.DocumentException: Error on line 135 of document  : Invalid byte 1 of 1-byte UTF-8 sequence. Nested exception: Invalid byte 1 of 1-byte UTF-8 sequence.
   at org.dom4j.io.SAXReader.read(SAXReader.java:482)
   at org.dom4j.io.SAXReader.read(SAXReader.java:343)
   at org.springframework.extensions.config.xml.XMLConfigService.parse(XMLConfigService.java:164)
   … 67 more

Est-ce que l'un d'entre vous aurait une idée de là où se trouve mon erreur ? J'ajoute que je n'ai pas de réelle connaissance en développement… Merci d'avance.

Outcomes