Details
Description
I now have a small test case that demonstrates the problem.
I have created two versions of your facelets example, one using 1.7.0 DR2 and one using 1.7.1.
I have modified the facelets example project by adding 4 files:
restfaces-1.2.jar to the lib directory
RestfacesBean.java
restfaces.jspx
restTemplate.jspx
The zip file may be unzipped into the server\default\deploy directory of JBoss 4.2.3.GA
The example mimics my problem exactly. In the 1.7.0 DR2 version navigating to http://localhost:8080/IcefacesRestfacesGood/restfaces.iface causes the backing bean method in RestfacesBean to be run:
----- code snippet -------------------
@ViewListener(pattern="/restfaces.iface")
public String onLoadPhaseManagerPage() {
String result = null;
System.err.println("ICE 1.7.0 DR2 Restfaces is processing the page hit.");
this.setMessage("RESTFACES IS WORKING!");
return result;
}
----- code snippet end -------------------
The JBoss console output is what you would expect (file JBosssConsoleLogForRestfacesExample.txt attached):
16:33:52,134 ERROR [STDERR] Oct 23, 2008 4:33:52 PM org.restfaces.application.InitBean init
INFO: RestFaces initialized!
16:33:52,134 ERROR [STDERR] ICE 1.7.0 DR2 is in the bean constructor.
16:33:52,134 ERROR [STDERR] ICE 1.7.0 DR2 Restfaces is processing the page hit.
16:33:52,446 ERROR [STDERR] ICE 1.7.0 DR2 is in the message getter.
16:34:38,149 WARN [MainSessionBoundServlet] [1] views have accumulated updates
and the page el expressions correctly displays the new value of #{restfacesBean.message}.
However, if I navigate to http://localhost:8080/ICETest1/restfaces.iface the page does not generate any error but the onLoadPhaseManagerPage() function is never called. Here is the log:
16:33:52,134 ERROR [STDERR] Oct 23, 2008 4:33:52 PM org.restfaces.application.InitBean init
INFO: RestFaces initialized!
I find it interesting that neither the constructor nor the getter method for the restfacesBean is called.
I have created two versions of your facelets example, one using 1.7.0 DR2 and one using 1.7.1.
I have modified the facelets example project by adding 4 files:
restfaces-1.2.jar to the lib directory
RestfacesBean.java
restfaces.jspx
restTemplate.jspx
The zip file may be unzipped into the server\default\deploy directory of JBoss 4.2.3.GA
The example mimics my problem exactly. In the 1.7.0 DR2 version navigating to http://localhost:8080/IcefacesRestfacesGood/restfaces.iface causes the backing bean method in RestfacesBean to be run:
----- code snippet -------------------
@ViewListener(pattern="/restfaces.iface")
public String onLoadPhaseManagerPage() {
String result = null;
System.err.println("ICE 1.7.0 DR2 Restfaces is processing the page hit.");
this.setMessage("RESTFACES IS WORKING!");
return result;
}
----- code snippet end -------------------
The JBoss console output is what you would expect (file JBosssConsoleLogForRestfacesExample.txt attached):
16:33:52,134 ERROR [STDERR] Oct 23, 2008 4:33:52 PM org.restfaces.application.InitBean init
INFO: RestFaces initialized!
16:33:52,134 ERROR [STDERR] ICE 1.7.0 DR2 is in the bean constructor.
16:33:52,134 ERROR [STDERR] ICE 1.7.0 DR2 Restfaces is processing the page hit.
16:33:52,446 ERROR [STDERR] ICE 1.7.0 DR2 is in the message getter.
16:34:38,149 WARN [MainSessionBoundServlet] [1] views have accumulated updates
and the page el expressions correctly displays the new value of #{restfacesBean.message}.
However, if I navigate to http://localhost:8080/ICETest1/restfaces.iface the page does not generate any error but the onLoadPhaseManagerPage() function is never called. Here is the log:
16:33:52,134 ERROR [STDERR] Oct 23, 2008 4:33:52 PM org.restfaces.application.InitBean init
INFO: RestFaces initialized!
I find it interesting that neither the constructor nor the getter method for the restfacesBean is called.
-
Hide
- ICERest.zip
- 7.14 MB
- Tyler Johnson
-
- IcefacesRestfacesGood.war/.../egypt.xhtml 0.7 kB
- IcefacesRestfacesGood.war/.../morocco.xhtml 0.7 kB
- IcefacesRestfacesGood.war/.../southAfrica.xhtml 0.9 kB
- IcefacesRestfacesGood.war/.../china.xhtml 0.8 kB
- IcefacesRestfacesGood.war/.../india.xhtml 0.8 kB
- IcefacesRestfacesGood.war/.../japan.xhtml 0.7 kB
- IcefacesRestfacesGood.war/.../australia.xhtml 0.7 kB
- IcefacesRestfacesGood.war/.../england.xhtml 0.7 kB
- IcefacesRestfacesGood.war/.../france.xhtml 0.7 kB
- IcefacesRestfacesGood.war/.../germany.xhtml 0.7 kB
- IcefacesRestfacesGood.war/.../main.xhtml 0.4 kB
- IcefacesRestfacesGood.war/.../canada.xhtml 0.7 kB
- IcefacesRestfacesGood.war/.../mexico.xhtml 0.7 kB
- IcefacesRestfacesGood.war/.../usa.xhtml 0.7 kB
- IcefacesRestfacesGood.war/.../argentina.xhtml 0.7 kB
- IcefacesRestfacesGood.war/.../brazil.xhtml 0.7 kB
- IcefacesRestfacesGood.war/.../chile.xhtml 0.7 kB
- IcefacesRestfacesGood.war/content-facelet.jspx 2 kB
- IcefacesRestfacesGood.war/country-facelet.jspx 0.8 kB
- IcefacesRestfacesGood.war/index.jsp 0.2 kB
- IcefacesRestfacesGood.war/mainTemplate.jspx 2 kB
- IcefacesRestfacesGood.war/.../MANIFEST.MF 0.0 kB
- IcefacesRestfacesGood.war/navigation.jspx 2 kB
- IcefacesRestfacesGood.war/restfaces.jspx 0.8 kB
- IcefacesRestfacesGood.war/restTemplate.jspx 1.0 kB
- IcefacesRestfacesGood.war/.../.faces-config.xml.jsfdia 0.1 kB
- IcefacesRestfacesGood.war/.../NavigationBean.class 1 kB
- IcefacesRestfacesGood.war/.../PageContentBean.class 3 kB
- IcefacesRestfacesGood.war/.../RestfacesBean.class 1 kB
- IcefacesRestfacesGood.war/.../TreeNavigation.class 7 kB
-
- JBossConsoleLogForRestfacesExample.txt
- 8 kB
- Tyler Johnson
-
- restfacesNotWorking.jpg
- 28 kB
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
It seems that this issue doesn't need any framework or component side fixes.
The constructor or the getter method for the restfacesBean is not called because the bean is not declared in ICETest1's faces-config.xml file. Secondly, the '@ViewListener(pattern="/restfaces.iface")' annotation is not respected because sometime after 1.7.0DR2 release ICEfaces was changed to use viewIDs that have their suffix translated to physical locations. More precisely the change was introduced by the fix for
ICE-2823.So, declaring restfacesBean managed bean in the faces-config.xml and changing the annotation to '@ViewListener(pattern="/restfaces.jspx")' makes ICETest1 work as expected.