Bonjour à tous,

J'essaie tant bien que mal de coupler JSF et DWR sans succès malgré mes recherches (notamment sur le forum).

Environnement de travail :
  • IDE : Eclipse 3.3.0 avec WTP
  • Application Server : Jetty Server 6.1
  • JSF RI 1.1
  • DWR 2.0


Arborescence de mon dossier WebContent :
->WebContent
->index.jsp
->home.jsp
->WEB-INF
->lib
-> *.jar (dont dwr.jar et jsf-api.jar et jsf-impl.jar)
-> dwr.xml
-> faces-config.xml
-> web.xml

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
14
15
16
17
18
 
<?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>
  <init>
	<creator id="jsf" class="org.directwebremoting.faces.JsfCreator" />
  </init>
  <allow>
    <create creator="jsf" javascript="DwrBean" scope="session">
      <param name="managedBeanName" value="dwrBean"/>
      <param name="class" value="monPackage.dwrBean"/>
    </create>
  </allow>
</dwr>
faces-config.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<faces-config>
	<managed-bean>
		<managed-bean-name>dwrBean</managed-bean-name>
		<managed-bean-class>monPackage.dwrBean</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
</faces-config>
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
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="WebApp_ID">
	<display-name>nomDeMonApplication</display-name>
	<filter>
        <filter-name>DwrFacesFilter</filter-name>
        <filter-class>org.directwebremoting.faces.FacesExtensionFilter</filter-class>
    </filter>
 
    <filter-mapping>
        <filter-name>DwrFacesFilter</filter-name>
        <url-pattern>*.jsp</url-pattern>
    </filter-mapping>
 
	<!--  DWR Servlet -->
    <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>
        <init-param>
    		<param-name>activeReverseAjaxEnabled</param-name>
    		<param-value>true</param-value>
  		</init-param>
    </servlet>
    <!--  Servlet Mapping DWR -->
    <servlet-mapping>
        <servlet-name>dwr-invoker</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>
    <!--  Welcome Files -->
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>    
</web-app>
index.jsp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<!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>nomDeMonApplication</title>
</head>
<body>
	<jsp:forward page="/dwr/home.jsp"/>
</body>
</html>
home.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
 
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<f:view>
<!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>nomDeMonApplication</title>
 
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/util.js'></script>
</head>
<body>
	<h:outputText value="Hello User!"></h:outputText>
</body>
</html>
</f:view>
Quand je vais sur http://localhost:8080/nomDeMonApplication, je me prends un /dwr/home.jsp not found. DWR fonctionne car en allant sur http://localhost:8080/nomDeMonApplication/dwr j'ai bien mon Bean dwrBean d'affiché.

Je suis perdu et la doc du site de DWR sur le sujet est vraiment succinte. Toute aide est la bienvenue