A Java Conference: JSF2 run in the cloud

Here is the Java conference about makes JSF2 run in the cloud, Google Appengine, held in Las Vegas and opened registration.

http://javasymposium.techtarget.com/html/cloud.html?Offer=JSemcl120710&asrc=EM_UTC_12985279&uid=9127465#ABoschJSF

Many talked JSF2 run in the cloud, very few really doing this. I have realized it in my final year project.

Although to deploy JSF2 in Google Appengine faced some problems, such as lack support of threading function, however it gives many benefits to me. First is the easier and comfort deployment of my JSF2 application into Google Appengine. Where it is free to use at the first time. It is easier to integrate with Google Appengine Datastore to make a complete application. Secondly, I found that I am able to find the source code of the JSF2 Jar implementation, I can change some source code based on my usage, and replace it in my Java package structure. I am not sure normal server setup is it able to change source code as what I do like this, because last time I had tested and it was fail.

This is my first-touched experience when doing JSF2, and deployed JSF2 in the Google Appengine. I have faced many problems that Google Appengine don’t support the original concepts of JSF2, but it was solved.

I will not attend the conference, but hoped that I can find this speaker notes after the conference.

JSF 2 f:ajax why execute onevent three times?

Recently when I doing <f:ajax> inside JSF 2.0, I specify onevent javascript callback function, when f:ajax execute to the server and return to the client, it will call the javascript callback function. But I discovered that it will call the function three times. Afterwards when I checked the Javascript Console Log in Google, I discovered onevent will have three different status when it called the function.

The status are: begin, complete, success.

Therefore, the problem has known. We just have to define an onevent callback function as below.

function onevent(e) {
    if(e.status == ‘success’) {
        // TODO: your business
    }
}