Hi,

is the "com.sun.faces.util.Util" part of their -impl JAR file?
If so it is general bad to code against impl stuff.

Since the RI is open source, just go ahead and *copy* the code over to
your custom java code. Not a big deal. You can code against that *new*
util clazz
(not sure how many dependencies that guy has to other sun ri internal clazzes)

-Matthias

On 11/27/06, A.McCall <[EMAIL PROTECTED]> wrote:

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.




--
Matthias Wessendorf
http://tinyurl.com/fmywh

further stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com

Reply via email to