Java-backed Web Scripts interface utilisateur

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Member II

Re: Java-backed Web Scripts interface utilisateur

Bonjour à tous,

      Je viens de m'inscrire sur ce forum à l'instant je m'appelle laurent et je découvre alfresco depuis 1 mois à peine. J'ai quelques peines à implémenter mes premiers webscripts alfresco surtout les java backed web scripts.

      Pour résumer j'ai le même problème que BertrandF ci dessus sauf que je n'ai pas la ligne <format default="">argument</format> dans mon descripteur xml.

Donc j'ai un fichier compas.post.desc.xml :

<webscript>
   <shortname>POST compas bean</shortname>
   <description>Permet de creer une demande</description>
   <url>/ui/compas/bean/compas</url>
   <authentication>guest</authentication>
    <transaction>requiresnew</transaction>
</webscript>

J'ai un retour compas.post.html.ftl tout simple :

<html>
   <body>
   ${mess}
   </body>
</html>

J'ai ma classe java Compas.java qui implémente la classe DeclarativeWebScript :

public class Compas extends DeclarativeWebScript {



    private ServiceRegistry serviceRegistry;

    @Override
    protected Map<String, Object> executeImpl(WebScriptRequest req, WebScriptStatus status) {
       
        Map<String, Object> model = new HashMap<String, Object>();
        model.put("mess", "Traitement java Compas…");
        return model;

    }

    public void setServiceRegistry(ServiceRegistry serviceRegistry) {
        this.serviceRegistry =serviceRegistry;
    }

}

Je suis sur que ma déclaration spring est correcte puisque je rentre dans le code de la fonction "setServiceRegistry".

Malgré tout ca, l'exécution du webscript ne rentre pas dans la fonction executeImpl puisque j'ai une erreur freemarker.core.InvalidReferenceException: Expression mess is undefined.

Merci d'avance pour votre aide.

Laurent
Highlighted
Active Member

Re: Java-backed Web Scripts interface utilisateur

Bonjour,

Je suis sur que ma déclaration spring est correcte puisque je rentre dans le code de la fonction "setRenodocServiceRegistry".
Ce n'est pas par ce que l'injection du service se fait correctement que votre déclaration est correcte, il est possible que "l'association" de votre classe Java avec les fichiers de votre webscript (desc.xml, .ftl, …) ne se fasse pas correctement et ce car la nomination de l'identifiant de votre bean spring est primordiale.

Serait-il possible que vous nous montriez votre déclaration spring ainsi que le lieu où se trouve votre webscript (l'arborescence dans alfresco) ?

Cordialement.
Highlighted
Member II

Re: Java-backed Web Scripts interface utilisateur

Merci pour la réponse.

Alors ma déclaration Spring se trouve dans le fichier compas-scripts-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>
   <!– Add aspect custom action –>

   <bean id="webscript.alfresco.extension.templates.webscripts.compas.bean.compas.post" class="fr.service.Compas" parent="webscript">
      <property name="serviceRegistry">
         <ref bean="ServiceRegistry" />
      </property>
   </bean>
</beans>

Pour résumer le webscript se trouve dans le répertoire alfresco/extension/templates/webscripts/compas/bean
Le descripteur ci dessus dans le répertoire alfresco/extension
Ma classe java dans le package fr.service
Highlighted
Active Member

Re: Java-backed Web Scripts interface utilisateur

Pour résumer le webscript se trouve dans le répertoire alfresco/extension/templates/webscripts/compas/bean

Je pense que l'identifiant de votre bean est erroné, essayez avec : webscript.compas.bean.compas.post
<bean id="webscript.compas.bean.compas.post" class="fr.service.Compas" parent="webscript">

</bean>
Cordialement.
Highlighted
Member II

Re: Java-backed Web Scripts interface utilisateur

Je te remercie cela venait bien de ca!

Merci encore je vais enfin pouvoir rentrer dans le vif du sujet!

A bientôt!

Laurent