cancel
Showing results for 
Search instead for 
Did you mean: 

Alfresco Share - Web Script en JAVA

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

Je fais appel à vous car j'aimerai créer un webscript non pas en Javascript mais en Java dans Share (pas dans Alfresco).
Je me suis donc référé au tutorial ci-dessous :
http://wiki.alfresco.com/wiki/Java-backed_Web_Scripts_Samples

et en particulier sur la location des fichiers dans Share
.jar file in <tomcat>/webapps/share/WEB-INF/lib or .class files in <Alfresco>/tomcat/webapps/alfresco/WEB-INF/classes/<class folder structure>
web-scripts-application-context.xml - <tomcat>/webapps/share/WEB-INF/classes/org/springframework/extensions/webscripts
simple.get.desc.xml  - <tomcat>/webapps/share/WEB-INF/classes/alfresco/templates/webscripts/org/alfresco/demo

Je me rends compte que lorsque je me connecte à l'URL http://localhost:8080/share/service/index , je ne trouve pas de nouveau webscript dans la liste.

Quelqu'un pourrait-il m'éclairer ?

Merci d'avance.
11 REPLIES 11

allen
Champ in-the-making
Champ in-the-making
Quelqu'un a-t-il eu besoin de développer un webscript dans Alfreso et dans Share ?

jayjayecl
Confirmed Champ
Confirmed Champ
Bonjour,

pouvez-vous fournir la liste des fichiers que vous avez créés, leur contenu, et leur emplacement dans Alfresco ?
Merci

allen
Champ in-the-making
Champ in-the-making
Bonjour,

J'ai crée un jar SimpleWebScript.jar (placé dans tomcat/webapps/share/WEB-INF/lib) dans lequel se trouve la classe org.alfresco.module.demoscripts.SimpleWebScript.java

public class SimpleWebScript extends DeclarativeWebScript {

   public SimpleWebScript() {
      
   }
   
   protected Map<String, Object> executeImpl(WebScriptRequest req,
         Status status) {
      Map<String, Object> model = new HashMap<String, Object>();
      model.put("hello", "Hello World");
      return model;
   }
}

puis un fichier simple.get.desc.xml (placé dans tomcat/webapps/share/WEB-INF/classes/alfresco/templates/webscripts/org/alfresco/demo) :

<webscript>
  <shortname>The World's Simplest Webscript</shortname>
  <description>Hands back a little bit of JSON</description>
  <url>/demo/simple</url>
  <authentication>none</authentication>
  <format default="">argument</format>
</webscript>

puis un fichier simple.get.html.ftl (placé dans tomcat/webapps/share/WEB-INF/classes/alfresco/templates/webscripts/org/alfresco/demo) :

<html>
   <head>
      <title>Hello World</title>
   </head>
   <body>
      ${hello}
   </body>
</html>

Merci d'avance de votre aide.

cleseach
Star Contributor
Star Contributor
Bonjour,

Avez-vous bien déclaré votre webscript dans un fichier "-context.xml" ?
cf. http://wiki.alfresco.com/wiki/Java-backed_Web_Scripts_Samples#Declaring_the_Web_Script_.28Spring.29

Cordialement,
Charles Le Seac'h

allen
Champ in-the-making
Champ in-the-making
Bonjour,

J'ai crée un nouveau fichier web-scripts-application-context.xml dans le répertoire tomcat/webapps/share/WEB-INF/classes/org/springframework/extensions/webscripts :

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

<beans>
      <bean id="webscript.org.alfresco.demo.simple.get" class="org.alfresco.module.demoscripts.SimpleWebScript" parent="webscript" />
</beans>

Cordialement.

rguinot
Confirmed Champ
Confirmed Champ
le probleme que vous avez probablement est que le webscript java backed est coté repository (/alfresco/service/…) et visible à partir de la.
si vous voulez l'utiliser à partir de share, il vous faudra faire un petit web script coté share qui consommera les données de ce web script via un des connecteurs surf (via un remote.call(…)).

Laissez savoir si cela vous éclaircit.

allen
Champ in-the-making
Champ in-the-making
Malgré que mon fichier .ftl soit placé dans tomcat/webapps/share/WEB-INF/classes/alfresco/templates/webscripts/org/alfresco/demo ?

allen
Champ in-the-making
Champ in-the-making
Pour information, le besoin est que le web script soit appelé dans un site page côté Share.

rguinot
Confirmed Champ
Confirmed Champ
Voir les exemples de web scripts dans le code de share. pour appeler un web script coté repository, vous devez utiliser un connecteur surf (remote.call …).