cancel
Showing results for 
Search instead for 
Did you mean: 

[RESOLU] Custom actions : action-executer non défini ?!

jlocke
Champ in-the-making
Champ in-the-making
Bonjour à tous,

Je cherche à créer une action personnalisée déclenchée via un nouveau bouton sur la page de détail d'un document. J'ai lu le tuto de Jeff Potts : http://ecmarchitect.com/images/articles/alfresco-actions/actions-article.pdf

Malheureusement, je n'arrive pas à faire fonctionner l'action.
Cette action serait utilisée pour terminer un workflow associé au document (donc récupérer le workflow associé via l'API Java, et changer son état). Une sorte de raccourci pour éviter de retourner dans la liste des tâches pour terminer la tâche.

Pour l'instant, j'essaye seulement de faire fonctionner le code de Potts. J'ai donc :

Créé un fichier enable-web-flag-context.xml, placé dans tomcat/shared/classes/alfresco/web-extension

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

<beans>
        <bean id="enable-web-flag" class="com.someco.action.executer.SetWebFlag" parent="action-executer" >
           <property name="resourceBundles">
                <list>
                        <value>alfresco.web-extension.messages.someco</value>
                </list>
          </property>
        </bean>
</beans>

Ajouté dans le fichier share-config-custom.xml :

<!– Actions –>
<config evaluator="string-compare" condition="DocLibActions">
        <actions>
                <action id="someco-web-site" type="link" label="actions.someco.web-site">
                        <param name="href">http://ecmarchitect.com</param>
                        <param name="target">_blank</param>
                </action>

                <action id="someco-web-enable" type="javascript" label="actions.someco.web-enable" >
                        <param name="function">onActionSimpleRepoAction</param>
                        <param name="action">enable-web-flag</param>
                        <param name="successMessage">message.web-flag.enabled</param>
                        <param name="failureMessage">message.web-flag.failure</param>
                </action>
        </actions>

<actionGroups>
        <actionGroup id="document-details">
                <action index="500" id="someco-web-site" />
                <action index="510" id="someco-web-enable" />
        </actionGroup>
</actionGroups>

</config>

J'ai créé une classe Java SetEnableFlag (bien placéçe dans le package précisé plus haut) qui devrait être utilisée une fois que l'utilisateur clique sur le bouton. Au lancement d'Alfresco, j'ai pourtant ce message d'erreur :

2012-07-17 11:15:26,135  ERROR [web.context.ContextLoader] [main] Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'enable-web-flag' defined in file [/opt/alfresco/tomcat/shared/classes/alfresco/web-extension/enable-web-flag-context.xml]: Could not resolve parent bean definition 'action-executer'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'action-executer' is defined
        at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:1152)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:1097)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1083)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:560)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
        at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
        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.deployWAR(HostConfig.java:905)
        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:740)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:500)
        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:445)
        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.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'action-executer' is defined
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:527)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1083)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:864)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:1138)
        … 32 more
Que faire ?

Merci d'avance
1 REPLY 1

jlocke
Champ in-the-making
Champ in-the-making
Problème résolu. Il faut en fait placer le fichier enable-web-flag-context.xml dans le dossier extension.