JSF External Context getRealPath - jsf

I'm using JSF 2.1.2.
On my locale machine
FacesContext.getCurrentInstance().getExternalContext().getRealPath("navigation.xml")
returns the correct path to the file!
On another machine it returns null.
I deployed the same WAR file on both machines.
Both are running a Weblogic Server 10.3.5
The JSF libraries are in the WEB-INF/libs folder, I'm not using the version shipped with weblogic.
Any idea why this does not work?
Any other proposal how I can get the path to the file, so that I don't have to call getRealPath?
EDIT: I switched to JSF 2.0.6. Because JSF 2.1 requires Java Servlet 3.0, which is not yet supported by Weblogic. But the error is still the same...

Related

OmniFaces 2.0 "Required CDI" error even though CDI is used

I'm using OmniFaces 1.6 currently, with an application running JSF 2.2.6, Weld 1.1.9, on a Tomcat 7.
I've tried updating OmniFaces to 2.0, but when I do, I get this error message while launching the application (and the application doesn't start):
This OmniFace version requires CDI, but none was found on this environment. OmniFaces 2.x requires a minimum of JSF 2.2
It links to this page: http://omnifaces.org/cdi/
The problem is that, as I said, the application definitely uses JSF 2.2 and CDI.
Any ideas on what could be wrong?
I had same issue with you.
Please check this
http://omnifaces.org/cdi/
here are the additional instructions:
Install CDI 1.1+ in this environment.
For Tomcat users who don't have freedom in server choice, refer this
article: How to install CDI in Tomcat? When installing Weld, make
sure that you're using a minimum of version 2.2.0! Older versions have
initialization ordering bugs.
Switch to a CDI 1.1 capable environment.
For Tomcat users who have full freedom in server choice, just replace
Tomcat by TomEE, or perhaps even by WildFly.

jsf facelets cannot find property in tomcat 7 but works in glassfish 3.1

I am trying to figure out which jar I need to download for tomcat 7. I am making a call and passing an argument to a method such "availableEmployees(DepartmentName)" in my faces web page. This does not work in tomcat 7 but works in glassfish 3.1. I have added the javax.faces.2.1.20.jar "Mojarra" to my web app for jsf dependency. I have also javax.servlet.jsp.jstl.1.2.1 in my tomcat library folder.
Did anyone run into such problem ? Do I need to add more than the above jars for jsf support ? Thanks. Not using maven since it is somebody else' project.
I am using netbeans and I linked to an eclipse project. I added my own primefaces library. When I looked at the build output from netbeans, I have noticed that there were two copies of primefaces library. One with 3.4.2 and another with 3.3.1.
Removed one of them and everything worked.

Java Server Faces not present in Eclipse

I'm developing on a Mac OS 10.5.8
I have installed java 1.6 (soylatte) and it is correctly set :
java -version
java version "1.6.0_03-p3"
Java(TM) SE Runtime Environment (build 1.6.0_03-p3-landonf_19_aug_2008_14_55-b00)
I downloaded Eclipse Juno with the WTP stuffs.
I created a web app using JSP technology.
I'm thinking about doing the code modifications to use JSF technology.
So i downloaded Apache myFaces 2.1 jars and added them in my WEB-INF/lib directory.
The problem is that in the project properties / Project Faces section,
I don't have access to Java Server Faces checkbox.
What am I missing ?
[Edit] In response to BalusC comment.
In the "Project Faces" section from my project's properties, there is no checkbox with "Java Server Faces" displayed.
There are a lot of checkboxes (e.g. JPA, XDoclet, etc etc) but not JSF
Here are two good tutorials which walk you through the process of creating a JSF application using Eclipse:
Creating JavaServer Faces JSF application in Eclipse
How to make Eclipse IDE supports JSF 2.0
Your Java version 1.6 and Eclipse version (Juno, version 4) are correct. Since you clarified that JSF is not even present, my first instinct is that Eclipse cannot, for some reason, read the JSF jar files. A similar question was already asked here.

Does JSF 1.2 support JDK 1.5 and Servlets 2.4?

I am currently developing a J2EE project using Servlets 2.4 and JSF 1.2. If I deploy my app in WebSphere 6.1, the page renders properly. If I deploy it in Tomcat 6.0 that uses JDK 1.5, the page doesn't render properly and show something like below:
<h:outputText value="#{msg.my_value}" />
I am just curious to know what is the root cause that cause the problem and it's just so interesting that it works in WebSphere and doesn't work in Tomcat although both of them are using JDK 1.5.
WebSphere as being a concrete Java EE application server ships with bundled JSF libraries, but Tomcat as being a simple JSP/Servlet container does not ship with any bundled JSF libraries. If you have paid close attention to your Tomcat server logs, then you should have noticed that there's a ClassNotFoundException on the FacesServlet which should already be enough hint as to the root cause of this problem.
You need to supply your own JSF implementation for Tomcat. This can be done by manually downloading the JSF libraries and placing them in either the /WEB-INF/lib folder of your webapp, or the /lib folder of the Tomcat installation. The latter will apply on all of its deployed webapps, like as happens in WebSphere.

Oracle ADF Faces application on Websphere 7.0

Can someone please help me out with the Oracle ADF faces application which I'm trying to deploy on Websphere 7.0? Do I need to apply any fixpacks on WAS? I'm trying to migrate this project from Websphere 6.1 to Websphere 7.0.
In Websphere 6.1, after removing jsf implementation jar files and providing them as part of WEB-INF\lib and changing the classloader to PARENT_LAST, the application was working fine.
For websphere 7.0, I can't seem to get the application working. It always picks up the Sun's JSF implementation. I've also tried the shared library concept but to no success.
Regards,
Zahir
The Oracle documentation lists a certification for WAS 7.0.0.13 ND. So you need FixPack 13 or later.
As the WebSphere Application Server 7 is a full blown JEE5 server it requires/has JSF 1.2 support. You can switch between the built in Sun and MyFaces implementation if required.
You should probably make sure that the ADF version you are using is certified for WAS 7. The ADF release notes tell that ADF supports JSF 2.0. The WAS 7 only comes with JSF 1.2. Exchanging the JSF version with placing the JSF 2 libs into WEB-INF/lib works well for our projects in conjunction with the 'PARENT_LAST' classloading policy. Make sure that you set the policy either for the whole application or for both the application and the web module.
ADF Faces is a Java based framework and it will run on WebSphere but, you have to add the required libraries first. The easiest way to prepare WebSphere to run ADF Faces application is through JDeveloper. Alternatively, you can google Oracle JRF (Java Runtime Framework) and install that on your WebSphere, before running the ADF Faces application.

Resources