ADF Faces Pages under WEB-INF Directory Do Not Render Correctly in 10.1.3.1
By Didier Laurent on Nov 22, 2006
Some readers of the "Oracle JDeveloper 10g for Forms & PL/SQL Developers" informed me they had some problems with the Hands-on Practice of Chapter 11: Create the Home Page and Menus, section III.
Create a Template.
At page 344, under Add Components to the Template, step 1, after the drag&drop of the PanelPage on the h:form tag, the Visual Editor should normally
display the template page as the following:
This is how the
page displays when doing the practice in JDeveloper 10.1.3.0
However, when using JDeveloper 10.1.3.1 the ADF Faces components do not render correctly:
Closing and reopening JDeveloper as proposed in the NOTE at page 345 doesn't help.
This problem happens for all ADF Faces page you create in WEB-INF directory or in any of its sub-directories, f.ex. ...\WEB-INF\template\
We reported the issue in Bug 5665931 (*) - JSF PAGES CREATED IN SUB-DIRECTORY DON'T RENDER CORRECTLY IN THE VISUAL EDITOR
(*) requires an account on MetaLink.
However, Steve Muench points out that the problem is related to a change in the JavaServer Faces reference implementation version 1.1_02, as documented in the JDeveloper 10.1.3.1.0 Release Notes:
JDeveloper 10.1.3.1 upgrades to the JavaServer Faces reference implementation
version 1.1_02. This maintenance release of the JSF runtime from Sun introduces
a new restriction preventing the processing of any JSF page located in the ./WEB-INF
directory (or subdirectory thereof). If your JSF applications contain pages
in the WEB-INF directory, you will need to move those pages to another directory
under the web root other than WEB-INF for them to function correctly. If your
JSF pages use ADF Model data binding, after moving the JSP/JSPX pages from ./WEB-INF
(or subdirectory) to a new directory under your web root, you will need to reflect
the change in the "path" value inside the <pageMap> section
of your DataBindings.cpx file. For example, if your page previously had a "path"
value of "/WEB-INF/page/Test.jspx" and you moved this Test.jspx page
to ./public_html/page/Test.jspx -- where ./public_html is the HTML root directory
of your view controller project -- then you must edit the value of the path
and change it from "/WEB-INF/page/Test.jspx" to "/page/Test.jspx".
To avoid the issue, you can
- either use JDeveloper 10.1.3.0
[it can be downloaded from OTN; ensure you select Oracle JDeveloper 10g (Version 10.1.3.0, build 3673)]
- or you can store the template somewhere else than under WEB-INF.
"The only reason for putting it there is so that it is not directly runnable. You can
avoid this issue by not deploying the template file if it was elsewhere
in the directory structure." (Thanks to Duncan Mills for his comment).