cancel
Showing results for 
Search instead for 
Did you mean: 

Java-backed Webscripts

loic
Champ in-the-making
Champ in-the-making
Bonjour,

Je commence à me pencher sur les webscripts afin de pouvoir récupérer du contenu depuis une autre webapps et actuellement j'essaye de faire le tutoriel suivant : http://wiki.alfresco.com/wiki/Java-backed_Web_Scripts_Samples#SimpleWebScript.java

Sauf que tout ne se passe pas comme prévu Smiley Sad

Voilà les étapes que j'ai suivies :

- j'ai copié/collé la classe du wiki ajouté les références nécessaires pour qu'éclipse ne me souligne plus rien en rouge et exporter ça dans un fichier jar que j'ai déposé ici > webapps\alfresco\WEB-INF\lib

- J'ai ensuite ajouté les lignes suivantes au fichier : \webapps\alfresco\WEB-INF\classes\alfresco\web-scripts-application-context.xml
(Si j'ai bien compris c'est pour que spring soit "aware" de ma nouvelle classe hein ?)

    <!– SimpleWebScript –>
    <bean id="webscript.org.alfresco.demo.simple.get" class="org.alfresco.module.demoscripts.SimpleWebScript" parent="webscript">
<property name="dictionaryService" ref="DictionaryService"/>
    </bean>

- J'ai ajouté un fichier simple.get.desc.xml dans le space suivant : Company Home/Data Dictionnary/Web Scripts. (J'ai aussi testé en le mettant dans \webapps\alfresco\WEB-INF\classes\alfresco\templates\webscripts ça marche aussi)

- Je me suis rendu à l'adresse suivante > http://localhost:8080/alfresco/service/index et j'ai "refresh" tous les webscripts. Alfresco m'en a trouvé un supplémentaire. jusque là tout va bien

Le problème est que quand je me rend à cette adresse > http://localhost:8080/alfresco/service/demo/simple j'obtiens le message suivant :

    The Web Script /alfresco/service/demo/simple has responded with a status of 500 - Internal Error.

    500 Description:   An error inside the HTTP server which prevented it from fulfilling the request.

    Message:   Web Script format '' is not registered

    bla bla bla…


Si je demande un format spécifique (http://localhost:8080/alfresco/service/demo/simple?format=json), Le serveur me répond que j'ai besoin d'un template freemarker.

Comment faire ? Est-ce le fichier de description du tuto qui n'est pas bon ? Je l'ai modifié de différentes façon sans pour autant que cela fonctionne…
Ai-je vraiment besoin d'une template freemarker ? Il n'y a rien dans le tuto disant qu'il y en ai besoin. Et même si j'en ai vraiment besoin, comment récupérer dans cette template le "contenu" généré par ma classe java ? (${response} ? ${var} ?)

Je vous remercie de bien vouloir éclairer ma lanterne Smiley Happy
4 REPLIES 4

bertrandf
Champ on-the-rise
Champ on-the-rise
La réponse ne se trouverait-elle pas déjà sur le forum ??
cf. http://forums.alfresco.com/fr/viewtopic.php?f=25&t=2400&st=0&sk=t&sd=a&start=10#p12007

loic
Champ in-the-making
Champ in-the-making
Merci beaucoup !

En effet grâce à ce lien j'ai mon "java-backed webscript" qui fonctionne ! (yoohoo !)

En revanche, chose que je n'ai découvert que ce matin et qui n'est mentionné nul part : je dois redémarrer mon tomcat pour qu'il prenne en compte mon jar avec ma nouvelle classe. Je pensais qu'en faisant "Refresh Web Scripts" ici http://localhost:8080/alfresco/service/index ça "regardait" s'il n'y avait pas du nouveau dans le classpath…

loic
Champ in-the-making
Champ in-the-making
En fait la question cachée de mon précédent post est : "Doit-on _obligatoirement_ redémarrer Tomcat pour que notre jar soit pris en compte ou y a t il un moyen de "refresh" le classpath autrement ?"

bertrandf
Champ on-the-rise
Champ on-the-rise
"Doit-on _obligatoirement_ redémarrer Tomcat pour que notre jar soit pris en compte?"

Il me semble que oui  Smiley Sad .

Cordialement.