Simon, Can you point me to where I can find source code for MyFaces? I am really having a hard time trying to re-create my custom component in MyFaces. My first problem is that I can't find the compatible library for com.sun.faces.util.Util in MyFaces. Thanks.
Simon Kitching-3 wrote: > > Yep, having both the Sun and Myfaces implementations in the classpath is > likely to cause all sorts of problems. The Sun "ConfigureListener" is > there in the stack trace; I would guess that it is searching for all > META-INF/faces-config.xml files and processing them, and so is MyFaces, > thus adding every phase listener twice. > > There are no objects "in JSF" that are not in MyFaces; the MyFaces > "core" library is a 100% feature-complete implementation of the JSF 1.1 > specification. > > If you want to see how to write a custom table implementation, you could > look at the source for the MyFaces Tomahawk library; it includes a > custom table. Before doing this, though, are you quite sure you do need > to write a custom table? The tomahawk table is pretty flexible... > > Regards, > > Simon > > > A.McCall wrote: >> You're right.... I am getting six listeners... >> "listeners"= PhaseListener[6] (id=89) >> [0]= ExtensionsPhaseListener (id=2387) >> [1]= AutoScrollPhaseListener (id=2384) >> [2]= PageLifeCycle (id=2385) >> [3]= ExtensionsPhaseListener (id=2386) >> [4]= AutoScrollPhaseListener (id=2388) >> [5]= PageLifeCycle (id=88) >> >> PageLifeCycle is my custom listener. >> >> I did what you suggested and found that Myfaces and JSF is starting the >> listeners.. >> here is my log: >> java.lang.Throwable >> at >> com.rosetta.hcp.pageevents.PageLifeCycle.<init>(PageLifeCycle.java:18) >> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) >> at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) >> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown >> Source) >> at java.lang.reflect.Constructor.newInstance(Unknown Source) >> at java.lang.Class.newInstance0(Unknown Source) >> at java.lang.Class.newInstance(Unknown Source) >> at >> com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:711) >> at >> com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:398) >> at >> com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:328) >> at >> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3729) >> at >> >> I think my problem my be that I have jsf and myfaces jars in my lib. >> I have both because we have a custom component for a datatable and they >> need >> both jars. >> I may need to rewrite custom component to use only MyFaces. >> This will be hard since there are objects in JSF and not in MyFaces. >> I need to find code in MyFaces for the datatable. Is there any where I >> can >> look to see how to create a custom component thats renders a table in >> MyFaces? >> >> Thanks for all your help. >> >> >> >> >> Simon Kitching-3 wrote: >> >>> What I was expecting is that you would see two copies of *your* phase >>> listener in that list. At the very least, you should see *one*, >>> otherwise you wouldn't be getting any callbacks at all! >>> >>> The phase listeners you list below are normal, and won't be making >>> callbacks to your code. >>> >>> Just FYI, JSF implementations are required to look for all occurrences >>> of META-INF/faces-config.xml in the classpath and process them all on >>> startup. A faces-config file can provide a list of phase-listeners to be >>> regisered on startup; if you look inside the tomahawk jarfile you will >>> find a faces-config.xml file that defines these two listeners. To >>> repeat, though, these are nothing to do with your problem. >>> >>> Regards, >>> >>> Simon >>> >>> A.McCall wrote: >>> >>>> Simon, >>>> >>>> I did what you said. You are absolutely right...I do have 2 >>>> listeners... >>>> 1. org.apache.myfaces.renderkit.html.util.ExtensionsPhaseListener >>>> 2. org.apache.myfaces.renderkit.html.util.AutoScrollPhaseListener >>>> >>>> I do not see where these listeners are configured. >>>> Do you know how I set it up so I just have one listener? >>>> >>>> Thanks. >>>> >>>> >>>> Simon Kitching-3 wrote: >>>> >>>> >>>>> A.McCall wrote: >>>>> >>>>> >>>>>> I am having the same problem. My phaselistener is being called >>>>>> twice, >>>>>> I >>>>>> do not have configs entry in my web.xml, so it's not that. >>>>>> >>>>>> Just wondering.... Did you ever find out why yours was being called >>>>>> twice. >>>>>> >>>>>> >>>>> Phase listeners work fine for me. I'd be willing to bet that you do >>>>> have >>>>> the phase listener registered twice. >>>>> >>>>> I suggest that in your phase listener you get the list of registered >>>>> listeners then iterate through this and check that there is only one >>>>> object whose class is your custom listener class. >>>>> >>>>> LifecycleFactory factory = (LifecycleFactory) >>>>> FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY); >>>>> >>>>> Lifecycle lc = >>>>> factory.getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE); >>>>> >>>>> PhaseListener[] listeners = lc.getPhaseListeners(); >>>>> >>>>> If it is registered twice, then you could put a logging statement in >>>>> your phase-listener's constructor that prints out the current stack >>>>> trace; that will show you where the instances are being created. >>>>> >>>>> Regards, >>>>> >>>>> Simon >>>>> >>>>> >>>>> >>>>> >>>> >>>> >>> >>> >> >> > > > -- View this message in context: http://www.nabble.com/Why-afterPhase%28PhaseEvent-event%29-gets-called-twice-tf288329.html#a7554497 Sent from the MyFaces - Users mailing list archive at Nabble.com.

