je dirais que peut-être le bean n'est pas correctement déclaré côté Spring
En fait j'ai repris l'exemple du wiki et quand je créé mon WebScript avec AbstractWebScript, il fonctionne bien.
Mais je n'arrive pas à le faire fonctionner avec DeclarativeWebscript, pourtant:
- j'etends bien la classe : org.alfresco.web.scripts.DeclarativeWebScript
- j'ai overridé la méthode protected Map<String, Object> executeImpl(WebScriptRequest req, Status status)
- et j'ai construis son modèle dans une Map ( Clef Valeur/objet)
En ce qui concerne l'intégration spring dans un fichier XML du bean et la description/intégration XML du web-script, je fais la même chose que l'exemple du wiki.
<bean id="webscript.org.alfresco.audit.simple.get"
class="package.et.nom.de.la.ClasseDuWebScript"
parent="webscript">
</bean>
?L'intégration spring dans un fichier XML du bean est bien la même que j'etende la classe AbstractWebScript ou la classe DeclarativeWebscript ?
En ce qui concerne le fichier template, je l'ai nommé : nomWS.get.html.ftl et je l'ai placé au même endroit que la description du WS (nomWS.get.desc.xml), c'est bien ce qu'il faut faire?
Y-a-t-il qqch à préciser quelque part pour indiquer qu'il faut utiliser mon fichier ftl (dans la classe java ou dans la déclaration du WS) ou cela se fait implicitement vu le nom du template?
package org.alfresco.module.auditscript;
import java.util.HashMap;
import java.util.Map;
import org.alfresco.web.scripts.DeclarativeWebScript;
import org.alfresco.web.scripts.WebScriptException;
import org.alfresco.web.scripts.WebScriptRequest;
import org.alfresco.web.scripts.Status;
public class SimpleWebScript extends DeclarativeWebScript
{
@Override
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status)
{
try
{
Map<String, Object> model = new HashMap<String, Object>();
model.put("Var", "Hello World");
return model;
}
catch(Exception e)
{
throw new WebScriptException("Erreur");
}
}
}
<bean id="webscript.org.alfresco.audit.simple.get" class="org.alfresco.module.auditscript.SimpleWebScript" parent="webscript">
</bean>
En ce qui concerne le fichier template, je l'ai nommé : nomWS.get.html.ftl et je l'ai placé au même endroit que la description du WS (nomWS.get.desc.xml), c'est bien ce qu'il faut faire?
<bean id="webscript.org.alfresco.audit.simple.get" class="org.alfresco.module.auditscript.SimpleWebScript" parent="webscript">
</bean>
<bean id="webscript.be.etnic.alfresco.webscript.selector.get" class="be.etnic.alfresco.webscript.Selector" parent="webscript">
et pour le ftl et le fichier desc.xml
selector.get.html.ftl
et
selector.get.desc.xml
Perso, j'aime pas trop ceci:En ce qui concerne le fichier template, je l'ai nommé : nomWS.get.html.ftl et je l'ai placé au même endroit que la description du WS (nomWS.get.desc.xml), c'est bien ce qu'il faut faire?
et surtout:<bean id="webscript.org.alfresco.audit.simple.get" class="org.alfresco.module.auditscript.SimpleWebScript" parent="webscript">
</bean>
J'ai toujours utilisé les même noms…
The naming convention of the Spring bean declaration is important.
- The prefix “webscript” is picked up by the Web Script engine. In this way, it knows that the bean you are declaring is a web script implementation.
- The ending “get” is picked up by the Web Script engine. It tells the Web Script engine which HTTP method to handle. In this case, an HTTP GET.
- The rest is then assumed to be the package and name of the Web Script.
<webscript>
<shortname>The Simplest AUDIT Webscript</shortname>
<description>WS de test</description>
<url>/audit/simple</url>
<authentication>admin</authentication>
<format default="">argument</format>
</webscript>
<html>
<head>
</head>
<body>
${Var}
</body>
</html>
Mes noms de fichiers sont les suivants : simple.get.desc.xml et simple.get.html.ftl donc je ne pense pas que l'erreur soit ici.
Par contre mes fichiers se trouve dans :
%TOMCAT%\webapps\alfresco\WEB-INF\classes\alfresco\templates\webscripts\org\alfresco\audit
J'utilise un AMP pour déployer mon WebScript et je ne sais pas si les différents fichiers sont mis au bon endroit.
Exception: org.alfresco.web.scripts.WebScriptException - Web Script format '' is not registered
<format default="">argument</format>
de mon fichier simple.get.desc.xml.Content from pre 2016 and from language groups that have been closed.
Content is read-only.
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.