cancel
Showing results for 
Search instead for 
Did you mean: 

Problème récupération de site sur un Dashlet

alucard
Champ in-the-making
Champ in-the-making
Bonjour,

j'ai un petit souci par rapport, a la récupération de sites via un Dashlet, j'ai suivi le petit exemple de BertrandF (l'exemple ultra simple) donné ici :

http://forums.alfresco.com/fr/viewtopic.php?f=25&t=4638

pour voir si on arrive a récupérer quelque chose mais j'ai toujours l’éternelle erreur 500, il me signal que le problème vient du fichier test.get.html.ftl sur l’élément ${site}.

test.get.xml

<webscript>
   <shortname>TEST</shortname>
   <description>Dashlet de test</description>
   <family>site-dashlet</family>
   <url>/components/dashlets/test</url>
</webscript>

test.get.html.ftl

<div class="dashlet">
   <div class="title">TEST</div>
   <div class="body">
      ${site}
   </div>
</div>

test.get.js   (premier cas)

model.site = page.url.templateArgs.site;

en modifiant le fichier "test.get.js" en m'inspirant des fichiers par defauts de Share (deuxiemme cas):


   var result = remote.call("/api/sites/" + page.url.templateArgs.site);
   if (result.status == 200)
   {
      var site = eval('(' + result + ')').title;
   }

   model.site = site;


je me retrouve a avoir "org.mozilla.javascript.Undefined@1a26593" affiché sur mon Dashlet sous Share.

merci, et donc la je n'arrive tout simplement pas a trouver le moyen de récupérer mon site pour l'afficher dans le dashlet.
18 REPLIES 18

bertrandf
Champ on-the-rise
Champ on-the-rise
Bonjour,

Quel est votre environnement de travail, quelle version d'Alfresco, … ?
Pourriez vous nous donner les traces de logs exactes svp.

Sinon, avez vous essayé d'appeler votre variable autrement que site ?

Cordialement.

alucard
Champ in-the-making
Champ in-the-making
Je travail sur les dashlet share, sous alfresco 3.4, et le tout sous chrome. Non je n'ai pas essayer de récupérer autre chose que des sites pour l'instant.

premier cas

Pour le premier exemple simple, l'erreur qui s'affiche directement sur le dashlet (sous Share) est celui ci :

    An error has occured in the Share component: /share/service/components/dashlets/test.
    It responded with a status of 500 - Internal Error.
    Error Code Information: 500 - An error inside the HTTP server which prevented it from fulfilling the request.
    Error Message: 06110000 Failed to process template org/alfresco/components/dashlets/test.get.html.ftl
    Server: Alfresco Spring WebScripts - v1.0.0 (Release Candidate 2 739) schema 1 000
et voici son log correspondant :

    13:48:54,359 http-8080-1 ERROR [freemarker.runtime] Expression site is undefined on line 4, column 9 in org/alfresco/components/dashlets/test.get.html.ftl.

    Expression site is undefined on line 4, column 9 in org/alfresco/components/dashlets/test.get.html.ftl.
    The problematic instruction:
    ———-
    ==> ${site} [on line 4, column 7 in org/alfresco/components/dashlets/test.get.html.ftl]
    ———-

    Java backtrace for programmers:
    ———-
    freemarker.core.InvalidReferenceException: Expression site is undefined on line 4, column 9 in org/alfresco/components/dashlets/test.get.html.ftl.



       at java.lang.Thread.run(Thread.java:619)
    13:48:54,492 http-8080-1 ERROR [extensions.webscripts.AbstractRuntime] Exception from executeScript - redirecting to status template error: 06110000 Failed to process template org/alfresco/components/dashlets/test.get.html.ftl
    org.springframework.extensions.webscripts.WebScriptException: 06110000 Failed to process template org/alfresco/components/dashlets/test.get.html.ftl
       at org.springframework.extensions.webscripts.processor.FTLTemplateProcessor.process(FTLTemplateProcessor.java:170)



    Caused by: freemarker.core.InvalidReferenceException: Expression site is undefined on line 4, column 9 in org/alfresco/components/dashlets/test.get.html.ftl.


*******************************************************************************************************************************

deuxiemme cas


Pour le second exemple inspiré des fichier par defaut, voila ce qui s'affiche directement sur le dashlet (sous Share)  :

    org.mozilla.javascript.Undefined@9d3026

et aucune erreur dans le log.
mais dans ce deusiemme cas, est ce normal qu'il m'affiche  cela "org.mozilla.javascript.Undefined@9d3026" ?

bertrandf
Champ on-the-rise
Champ on-the-rise
Bonjour,

Si on regarde bien vos logs, on se rend compte qu'ils ne sont pas en phase avec le code de votre dashlet …
Expression sites is undefined on line 4

Vous essayez de récupérer la variable sites alors que vous passez site dans le modèle.

Savez vous qu'à chaque modification de votre webscript (en l’occurrence qui est une dashlet), il faut rafraichir les webscripts Share pour que vos changements soient pris en compte :
http://localhost:8080/share/page/index

Cordialement.

alucard
Champ in-the-making
Champ in-the-making
non enfaîte il y a eu modification, je récupère bien site, pour le model.site, c'est juste que j'avais changé entre temps durant mes copy de code sur le forum, mais sinon sur mon code, il n'y pas de souci de coté la, ça ne change pas l'erreur d’ailleurs même dans le cas ou je me suis mis a changer complètement la variable car j'ai pensé que "site" entrait en conflit.
Et oui je rafraîchi et je redémarre mon serveur tomcat entre chaque modification. encore une fois l'erreur ne disparait pas.

bertrandf
Champ on-the-rise
Champ on-the-rise
Du coup est ce qu'il serait possible d'avoir le détail de votre code en correspondance avec les traces d'erreurs ?

Car je vois pas comment qqn va pouvoir vous aider si vous ne donnez pas les bonnes traces d'erreur …

alucard
Champ in-the-making
Champ in-the-making
les détails des erreurs que j'ai mis correspondent au code que j'avais écris, il y'avait juste un s de trop dans "sites", erreur de copier coller, tout a été rafraîchi et réédité, j'ai même exécuté a nouveau le tout, avec les erreurs correspondante, en détaillant plus, pour moins d’ambiguïté. merci

bertrandf
Champ on-the-rise
Champ on-the-rise
Pouvez expliquer en détail la démarche de création de votre dashlet svp.

Moi j'ai copié tel quel vos fichier et j'obtiens le résultat escompté.

test.get.desc.xml
    <webscript>
       <shortname>TEST</shortname>
       <description>Dashlet de test</description>
       <family>site-dashlet</family>
       <url>/components/dashlets/test</url>
    </webscript>

test.get.html.ftl

    <div class="dashlet">
       <div class="title">TEST</div>
       <div class="body">
          ${site}
       </div>
    </div>

test.get.js
    model.site = page.url.templateArgs.site;


J'ai ajouté la dashlet sur mon site et je vois bien son identifiant s'afficher dans la dashlet.

http://alfresco-france.blogspot.com/2011/06/dashlet-specifique-helloworld1.html

alucard
Champ in-the-making
Champ in-the-making
c'est votre exemple que j'ai pris, et moi il m'affiche une erreur et non pas le site, je rajoute le dashlet, il apparaît sur share, mais il ne m'affiche pas les identifiant des sites trouvé, j'ai bien placé les fichier correspondant, il n'y a aucune ambiguïté de ce coté la, l'exemple du Hello world marche tres bien, c'est juste au résultat que ca fait erreur, sachant que j'ai une belle page d'erreur sur mon dashlet au lieu d'avoir l'identifiant de mon site.

jayjayecl
Confirmed Champ
Confirmed Champ
Bonjour,

comment "packagez"-vous ces développements ?
Avez-vous testé sur une intance toute fraiche toute propre d'Alfresco (aucun conflit possible avec d'autres tests) ?

pourrait-on avoir l'arborescence de votre projet ? (pour avoir les packages correspondants)

MErci
Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.