Hobione's Weblog

Living & Breathing in Web 2.0 Era

ICEFaces 1.8.1 migration

I have recently needed for upgrade to 1.8 from 1.7.2. The main reason I needed 1.8 is because my Auto Complete pop up list would not stay. It showed up for split of second and went away. It did not give me any chance to pick one from list. It worked perfectly on Firefox but not on IE 6 or 7. Here are some steps I had to take to make it work with my existing source.

Step 1:
First, I changed the pom.xml file to 1.8.1, it should be a piece of cake but apparently it did not do a thing.

<dependency>
 <groupId>org.icefaces</groupId>
 <artifactId>icefaces</artifactId>
 <version>1.8.1</version>
 </dependency>
 <dependency>
 <groupId>org.icefaces</groupId>
 <artifactId>icefaces-comps</artifactId>
 <version>1.8.1</version>
 </dependency>
 <dependency>
 <groupId>org.icefaces</groupId>
 <artifactId>icefaces-facelets</artifactId>
 <version>1.8.1</version>
 </dependency>

Steps I had taken to make it work:

Stopped and started the Glassfish server.  Closed and restarted MyEclipse 7.1 with -clean command but still would not work.  Here are some sample errors I was getting:

java.lang.
<div id=":b0">IllegalArgumentException: Illegal null argument to ObjectInputStreamWithLoader

java.lang.RuntimeException: Cant copy Serializable object: Caused by: java.lang.IllegalArgumentException: Illegal null argument to ObjectInputStreamWithLoader

[#|2009-07-28T19:59:38.107-0500|INFO|sun-appserver9.1|javax.enterprise.system.stream.out|_ThreadID=11;_ThreadName=pool-1-thread-2;|19:59:38,107  INFO D2DViewHandler:84 -
ICEsoft Technologies, Inc.
ICEfaces 1.7.2
 Build number: 17
Revision: 17749</div>
<div>

As you may noticed that, even though I changed the pom to ICEfaces 1.8.1 but the server console showed 1.7.2.  I should thought about the server’s cache issue but instead I did these following long steps.

I installed MyEclipse 7.5 which I meant to install it anyway and also 1.8 comes with MyEclipse 7.5.  So after install the MyEclipse 7.5, I was still getting errors.  Then, I created a brand new project using MyEclipse 7.5 and copied src, web and pom.xml to the new project.

Eeeeh, still would not work.  Finally I logged in to the admin console for Glassfish and undeployed all old 1.7.2 related project, stopped the server, restarted the server but wait, still negative.  I was getting this weird error.

java.lang.OutOfMemoryError: PermGen space</div>
<div>
I Googled it and found out that “It’s easy to reproduce this problem by reloading the context over and over again until you get an OutOfMemoryError (10 times was enough for a simple app)”.  So, I had to take a break to deploy the app and at last, it worked. Thank you my LORD.

ICEfaces rock! MyEclipse rocks!! my application rocks!!!

autoComplete
Advertisements

July 29, 2009 Posted by | GlassFish, ICEfaces, MyEclipse IDE | 1 Comment

Icefaces, Null Pointer caused by DOMResponseWriter

I was using Icefaces 1.7.2 with Jsf 1.2_04

javax.faces.FacesException: Problem in renderResponse: /WEB-INF/facelets/template.xhtml  Not Found in 
ExternalContext as a Resource 
Error code 500

When I took off the template.xhtml, I got this.
javax.faces.FacesException: Problem in renderResponse: null

INFO: 08:19:37,173 ERROR D2DFaceletViewHandler:292 - Problem in renderResponse: null
<pre>java.lang.NullPointerException
    at com.icesoft.faces.context.DOMResponseWriter.enhanceAndFixDocument(DOMResponseWriter.java:270)
    at com.icesoft.faces.context.DOMResponseWriter.endDocument(DOMResponseWriter.java:159)
 

Upgraded to JSF 1.2_07 and Facelets 1.1.14. Did not help.

Solution: I was missing filepath. Instead of /WEB-INF/facelets/template.xhtml, I had to add ../WEB-INF/facelets/template.xhtml and it worked.

Thanks to Arran from Icefaces.com for his support.

April 7, 2009 Posted by | Facelets, ICEfaces | 1 Comment

ICEfaces Blog Winner, this is awesome!

Recently, ICEfaces.org hunted for a Blogger with a blog about the ICEfaces framework. I casually submitted my blog url to and won a $500.00 Visa Card.  I feel lucky, fortunate, and am extremely flattered by the honor and I cannot thank ICEfaces enough for running the contest to reward its community developers (and me in particular). It proves how much ICEfaces cares about their open source projects and how close they are to developers who uses their souped up framework with a great success.

Icefaces Blog Winner

Icefaces Blog Winner

And here is the celebration with my Cohorts, Team Leads and Branch Manager at the Cimmarron Steak House on S. Meridian, Oklahoma City.

ICEFaces Blog Winner Celebration 2008

November 2, 2008 Posted by | ICEfaces | | 1 Comment

ICEfaces: Open up one tree node only

I wanted to open up one tree node instead of the whole tree. Here is a screen shot that I wish to happen when application get initialized.  The key is, it should happens always in the third node in this case “IRM-2008-000021-A”.

ICEFaces Tree

ICEFaces Tree

I have tried this code, but noting seems to be happening.


 if (count == 2) {
    folderObject.setExpanded(true);
    this.showFirstDataSet();
    this.setCurrentSeletedFolderName(folder.getName());
 }

Solution: Here how we have tackled the issue. Couple things we have learned about ICEfaces tree.
1. By default it expend
s to true. So if I don’t set IceUserObject.setExpanded(false); tree nodes always will be opened.
2. If I want to open up only 3rd node, I have to explicitly set IceUserObject.setExpanded(true); for node 1 and 2.


if(count == 1){
                    folderObject.setExpanded(true);
                }else if (count == 2) {
                    this.showFirstDataSet();
                    this.setCurrentSeletedFolderName(folder.getName());
                }else{
                    folderObject.setExpanded(false);
                }

count == 1 will always open up the 3rd item from the list which will be the project folder of root.  So, here what I am saying, open up node #1 and node # 2 only and set other nodes close and here how it looks.

Tree

Tree

September 19, 2008 Posted by | ICEfaces | , | 1 Comment

ICEFaces effect

I was trying to make ICEfaces effect using <ice:effect> tag.  But apprently it did not work without <ice:panelGroup>

http://www.icefaces.org/JForum/posts/list/0/8161.page#40290

Thanks

September 5, 2008 Posted by | ICEfaces, Java Server Faces | | 1 Comment

ICEFaces tree, data load

How do I load first tree node data set by default?  Here is an screen shot when the application gets initialized.

EPF Tree

EPF Tree

Now, if I click “EPF Work Group”, I get this following data

EPF Tree 2

EPF Tree 2

But, I’d like to see this screen without clicking “EPF Work Group” tree node or when application gets initialized.  I assume, I have to do it in backing bean, fire up an Action Event or so on.

Solution: http://www.icefaces.org/JForum/posts/list/9588.page

August 25, 2008 Posted by | ICEfaces, Java Server Faces | 2 Comments

ICEfaces split panel

I needed to split panel by vertically, 30%-70%. By default ice:panelDivider tag divides 50-50. I chatted with tJohson and he helped to figure it out.

<ice:panelDivider style="width: 90%; height: 450px;" dividerPosition="30">

Thanks, ICEfaces ROCKS.

May 28, 2008 Posted by | ICEfaces | Leave a comment