IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

Integrer AJAX dans une portlet Struts


Sujet :

Struts 1 Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 33
    Points : 25
    Points
    25
    Par défaut Integrer AJAX dans une portlet Struts
    Bonjour,
    Je développe des portlets struts sous l'environnement d'extention du portail Liferay. Lors de l'intégration d'ajax pour migrer vers le web 2.0. J'ai eu beacoup de problèmes. Bref, le remoting assurer par le framework dwr que je veux utiliser ne fonctionne pas.
    S'il vous plais aidez moi!
    s'il y a un autre framework AJAX que l'on peut intégrer dans une portlet, signalez le moi.
    Merci d'avance.

  2. #2
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Faut être plus précis dans le problème rencontré, sinon on peut pas t'aider.

    Ce que je te proposes, c'est d'installer le plugin firebug sous firefox, te charger ta portlet et de nous dire les éventuelles erreurs remontées.

    Déjà, est-ce que tes include dwr sont bien ingérées dans le portail lors du chargement de la portlet ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 33
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par Tommy31 Voir le message
    Faut être plus précis dans le problème rencontré, sinon on peut pas t'aider.

    Ce que je te proposes, c'est d'installer le plugin firebug sous firefox, te charger ta portlet et de nous dire les éventuelles erreurs remontées.

    Déjà, est-ce que tes include dwr sont bien ingérées dans le portail lors du chargement de la portlet ?
    J'ai installer le plugin firebug puis j'ai créer une portlet dont la source est la suivante:
    view.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <script type="text/javascript" src="/html/js/dwr/engine.js"></script>
    <script type="text/javascript" src="/html/js/dwr/util.js"></script>
     
    <script language="javascript" type="text/javascript">
    function update() {
      var name = DWRUtil.getValue("demoName");
      Demo.sayHello(name, function(data) {
        DWRUtil.setValue("demoReply", data);
      });
    }
    </script>
     
     
    <p>
      Name:
      <input type="text" id="demoName"/>
      <input value="Send" type="button" onclick="update()"/>
      <br/>
      Reply: <span id="demoReply"></span>
    </p>
    La classe Demo.java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class Demo 
    {
        public String sayHello(String name) {
            return "Hello, " + name;
        }
    }
    Il faut ajouter dwr.jar à la lib de l'environnement d'extension de liferay (ext-lib)

    ensuite modifier web.xml en ajoutant la servlet suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <servlet>
    		<servlet-name>DwrInvoker</servlet-name>
    		<display-name>DWR Servlet</display-name>
    		<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
    		<init-param>
    			<param-name>debug</param-name>
    			<param-value>true</param-value>
    		</init-param>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>DwrInvoker</servlet-name>
    		<url-pattern>/dwr/*</url-pattern>
    	</servlet-mapping>

    Enfin, ajouter dwr.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE dwr PUBLIC
        "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
        "http://getahead.org/dwr/dwr20.dtd">
     
    <dwr>
      <allow>
        <create creator="new" javascript="Demo">
          <param name="class" value="com.ext.portlet.DwrPort.Demo"/>
        </create>
      </allow>
    </dwr>
    Lors de l'execution de la portlet on ajoute un texte dans le champ approprié et on clique sur send, firebug signale une erreur:
    Demo is not defined
    update()layout (line 3)
    onclick(click clientX=0, clientY=0)layout (line 1)
    [Break on this error] <title>Liferay - Ajax Page</title>

  4. #4
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    C'est clair: Demo n'est pas défini. Ca me parraît normal puisque tu ne l'importe pas. Les services exposés s'incluent dans la page, et DWR (coté serveur) génère automatiquement le code js relatif au service.

    Tu doit inclure quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <script type='text/javascript' src='dwr/Demo.js'></script>

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 33
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par Tommy31 Voir le message
    C'est clair: Demo n'est pas défini. Ca me parraît normal puisque tu ne l'importe pas. Les services exposés s'incluent dans la page, et DWR (coté serveur) génère automatiquement le code js relatif au service.

    Tu doit inclure quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <script type='text/javascript' src='dwr/Demo.js'></script>
    Oui j'ai ajouté cette ligne mais ce qui est etrange ce que j'ai executé ce code sur NetBeans 6 et ça marche bien.

    Mais dans l'environnement d'extension de liferay avec Eclipse la meme erreur s'affiche.
    Merci

  6. #6
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Tu es sûr (avec firebug) que c'est la même erreur : Demo is not defined et pas 'update()' not defined ou quelque chose comme ca ?

    Dans firebug, onglet net, est-ce que tu vois passer l'appel à la resource Demo.js ?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 33
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par Tommy31 Voir le message
    Tu es sûr (avec firebug) que c'est la même erreur : Demo is not defined et pas 'update()' not defined ou quelque chose comme ca ?

    Dans firebug, onglet net, est-ce que tu vois passer l'appel à la resource Demo.js ?
    Oui, il y a eu l'appel à la ressource Demo.js et voilà le contenu de l'onglet Reponse:

    <html><head><title>Apache Tomcat/5.5.17 - Rapport d'erreur</title><style><!--H1 {font-family:Tahoma,Arial

    ,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif

    ;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color

    :white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black

    ;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76

    ;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black

    ;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>Etat HTTP 404 - /html/portlet

    /ext/DwrPort/dwr/uk/ltd/getahead/dwr/interface/Demo.js</h1><HR size="1" noshade="noshade"><p><b>type

    </b> Rapport d'état</p><p><b>message</b> <u>/html/portlet/ext/DwrPort/dwr/uk/ltd/getahead/dwr/interface

    /Demo.js</u></p><p><b>description</b> <u>La ressource demandée (/html/portlet/ext/DwrPort/dwr/uk/ltd

    /getahead/dwr/interface/Demo.js) n'est pas disponible.</u></p><HR size="1" noshade="noshade"><h3>Apache

    Tomcat/5.5.17</h3></body></html>

  8. #8
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 33
    Points : 25
    Points
    25
    Par défaut


    il y a eu l'appel à la ressource Demo.js et voilà le contenu de l'onglet Reponse:

    <html><head><title>Apache Tomcat/5.5.17 - Rapport d'erreur</title><style><!--H1 {font-family:Tahoma,Arial

    ,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif

    ;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color

    :white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black

    ;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76

    ;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black

    ;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>Etat HTTP 404 - /html/portlet

    /ext/DwrPort/dwr/uk/ltd/getahead/dwr/interface/Demo.js</h1><HR size="1" noshade="noshade"><p><b>type

    </b> Rapport d'état</p><p><b>message</b> <u>/html/portlet/ext/DwrPort/dwr/uk/ltd/getahead/dwr/interface

    /Demo.js</u></p><p><b>description</b> <u>La ressource demandée (/html/portlet/ext/DwrPort/dwr/uk/ltd

    /getahead/dwr/interface/Demo.js) n'est pas disponible.</u></p><HR size="1" noshade="noshade"><h3>Apache

    Tomcat/5.5.17</h3></body></html>

  9. #9
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Ben c'est clair, ta ressource Demo n'est pas trouvée (404 error).

    Corrige le chemin vers cette ressource.

Discussions similaires

  1. [AJAX] Ajax dans une appli J2EE et outil de développement
    Par tiboudchou dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/02/2007, 08h48
  2. [c#]Integrer Word dans une appli
    Par monmien dans le forum Windows Forms
    Réponses: 1
    Dernier message: 17/10/2006, 08h28
  3. Utilisation des fichiers CSS dans une application Struts
    Par menzlitsh dans le forum Struts 1
    Réponses: 4
    Dernier message: 22/09/2006, 16h29
  4. Doit-on integrer IPv6 dans une application?
    Par Franck.H dans le forum Développement
    Réponses: 3
    Dernier message: 28/10/2005, 14h29
  5. Récuperer un bean dans une action Struts
    Par ksavieras dans le forum Struts 1
    Réponses: 4
    Dernier message: 23/10/2005, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo