Java EE SDK Runs ADF Faces Blog
The saga of Oracle ADF Faces on the Java EE SDK continues. In our last installment, Adam Winer explained why ADF Faces won't run on Glassfish. I'm happy to report that after some minor tweaks to Sun's JSF implementation in the Java EE SDK, I think I have it running. However, I would appreciate any testing people could give to see if the entirety of ADF Faces works. ADF Faces is a large piece of software and their demo app is rather comprehensive. Incidentally, it's also a great testcase for extending JSF and exposed a few bugs which have also been fixed.
Here's how to try it. I'm using the jsf-glasssfish-updater technique described in an earlier blog.
Download and install the Java EE 5 SDK. If you already have JDK 5.0 installed, you can just download
Sun Java System Application Server PE 9 Beta
. Currently there is no Mac OS X build of the Java EE SDK, but don't despair! Mac Users will have to use Glassfish, the Open Source Application Server from which the Java EE SDK is built. Mac OS X is my main development platform, so I know it works there.Go to the the nightly download area. If you're running the Java EE SDK Preview, download the
jsf-sjsas9pebeta-updater.jar
. If you're running Glassfish, downloadjsf-glassfish-updater.jar
Execute this with the JDK 5 Java interpreter.
java -jar jsf-<glassfish-or-sjsas9pebeta>-updater.jar <PATH_TO_YOUR_ASINSTALL_DIRECTORY>
Where
<glassfish-or-sjsas9pebeta>
sjsas9pebeta or glassfish, andPATH_TO_YOUR_AS_INSTALL_DIRECTORY
is the parent of thelib
,bin
,domains
(and so on) directories.Download Oracle ADF Faces from Oracle's website. Note, you have to join their developer network to get it.
Unfortunately, ADF Faces appears to have been developed without taking advantage of the benefits of the robust SecurityManager in Java EE 5. Therefore, you'll have to put the following entry in your
server.policy
file if you want thechooseDate
component to work from theadf-faces-demo.war
.grant codeBase "file:${com.sun.aas.installRoot}/domains/domain1/applications/j2ee-modules/adf-faces-demo/WEB-INF/lib/adf-faces-api-SNAPSHOT.jar" { permission java.net.NetPermission "specifyStreamHandler"; };
Of course, you'll have to tweak the entries if you use the components in your apps. Also of note, the Sun App Server team has been debating turning the security manager off by default, so this step may not be necessary in the future.
Make sure any attempts to deploy a previous version of
adf-faces-demo.war
have been completely removed from the App Server. For example, I have noticed that occasionally theadf-faces-demo
directory stick around indomains/domain1/applications/j2ee-modules
. I had to manually remove this directory to enable the demo to work.From the ADF Faces download, deploy the
adf-faces-demo.war
to your running Java EE SDK App Server and visit the demo to enjoy ADF Faces on Java EE 5!
If you find any bugs when trying the demo please file them on the JSF issue tracker or the Glassfish issue tracker.
Also, note that this version of JSF includes the newinvokeOnComponent
feature we developed with help from Jacob Hookom and mentioned in his blog. Lastly, the jsf jars in the java.net Maven 1 Repository have been updated as well.
1 Comment
- komarios Dec 7, 2009 5:48 AM
Without you I would never have been able to deploy an adf application to glassfish. I have posted a more recent successful attempt to deploy adf faces in glassfish:
http://mariosgaee.blogspot.com/2009/12/glassfish-and-adf-faces.html
along with another successful attempt to deploy Adf Toplink Ejbs 10g here:
http://mariosgaee.blogspot.com/2009/12/glassfish-and-adf-toplink-10g.html
and here
http://mariosgaee.blogspot.com/2009/12/glassfish-and-adf-toplink-part-2.html
keep up the very good work!
glassfish rocks! //