Bonjour,

ne réussissant toujours pas à implémenter ajax (via RichFace entre autre), j'essaie de tester DWR... mais je rencontre de nouveaux problèmes... voici mes fichiers:

web.xml:

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
22
23
24
25
26
27
28
 
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <servlet>
        <servlet-name>dwr-invoker</servlet-name>
        <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dwr-invoker</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>
dwr.xml :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
    <allow>
        <create creator="new" javascript="classdwr">      
            <param name="class" value="packdwr.classdwr"/>        
        </create>
    </allow>
</dwr>
index.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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
        <title>DWR test</title>
 
        <%-- This files are created in the runtime --%>
        <script type='text/javascript' src='/stocksdemo/dwr/util.js'></script>
        <script type='text/javascript' src='/stocksdemo/dwr/interface/classdwr.js'></script>
        <script type='text/javascript' src='/stocksdemo/dwr/engine.js'></script>   
 
        <script type="text/javascript">
            function update() 
                {
                var name = dwr.util.getValue("demoName");
                alert(name);
                classdwr.sayHello(name, function(data) 
                    {dwr.util.setValue("demoReply", data);});
                }
        </script>  
    </head>
 
    <body onload="dwr.engine.setActiveReverseAjax(true);">
 
    <p>
    Name:
    <input type="text" id="demoName"/>
    <input value="Send" type="button" onclick="update()"/>
    <br/>
    Reply: <span id="demoReply"></span>
    </p>
 
    </body>
</html>
ma class java de test:

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
 
package packdwr;
 
import java.util.Collection;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;
import org.directwebremoting.proxy.dwr.Util;
 
public class classdwr 
    {
 
    public classdwr()
        {
 
        }
 
    public String sayHello(String name) {
        return "Hello, " + name;
    }
    }
lorsque je test via cette adresse : http://localhost:8084/testdwr/index.jsp , j'obtient bien ma page mais rien ne se passe... (si je clique sur le bouton je n'ai même pas mon alert()...)

si j'essaie avec cette url : http://localhost:8084/testdwr/dwr/ j'obtient:

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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
Etat HTTP 500 -
 
type Rapport d''exception
 
message
 
description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
 
exception
 
javax.servlet.ServletException: "Servlet.init()" pour la servlet dwr-invoker a généré une exception
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
	org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
	java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	java.lang.Thread.run(Thread.java:722)
 
cause mère
 
java.lang.NoClassDefFoundError: Could not initialize class org.directwebremoting.servlet.PlainPollHandler
	java.lang.Class.forName0(Native Method)
	java.lang.Class.forName(Class.java:186)
	org.directwebremoting.impl.ContainerUtil.class$(ContainerUtil.java:97)
	org.directwebremoting.impl.ContainerUtil.setupDefaults(ContainerUtil.java:150)
	org.directwebremoting.impl.ContainerUtil.setupDefaultContainer(ContainerUtil.java:125)
	org.directwebremoting.servlet.DwrServlet.init(DwrServlet.java:73)
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
	org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
	java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	java.lang.Thread.run(Thread.java:722)
 
note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/7.0.22.
et tomcat retourne dans ses logs ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
févr. 12, 2012 5:34:43 PM org.apache.catalina.core.StandardWrapperValve invoke
Grave: Exception lors de l'allocation pour la servlet dwr-invoker
java.lang.NoClassDefFoundError: Could not initialize class org.directwebremoting.servlet.PlainPollHandler
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:186)
je désespère un jour de pouvoir utiliser ajax .... si quelqu'un peut m'aider à comprendre j'en serais très heureux