I am trying to make the dialog work on top of clay in a WebSphere Portal
Server 5.1 test environment using RAD 6.0 with myfaces. Clay is
working fine. However the portal server acts as if it totally ignored
my dialog-config.xml, didn't load any dialog into the application map,
and by the time I navigate to the first dialog "DialogAddPerson", it
gave this exception:
2005.10.24 12:32:30.481 I javax.portlet.Portlet
-java.lang.IllegalArgumentException: DialogAddPerson
at
org.apache.shale.dialog.faces.DialogNavigationHandler.start(DialogNavigationHandler.java:445)
at
org.apache.shale.dialog.faces.DialogNavigationHandler.handleNavigation(DialogNavigationHandler.java:182)
at
org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:84)
at javax.faces.component.UICommand.broadcast(UICommand.java:106)
at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:90)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:132)
at
org.apache.myfaces.lifecycle.LifecycleImpl.applyRequestValues(LifecycleImpl.java:200)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:71)
at
org.apache.myfaces.portlet.MyFacesGenericPortlet.processAction(MyFacesGenericPortlet.java:221)
at
com.ibm.wps.pe.pc.std.cmpf.impl.PortletFilterChainImpl.processAction(PortletFilterChainImpl.java:104)
atcom.ibm.wps.propertybroker.standard.filter.PropertyBrokerActionFilter.processAction
(PropertyBrokerActionFilter.java:253)
at
com.ibm.wps.pe.pc.std.cmpf.impl.PortletFilterChainImpl.processAction(PortletFilterChainImpl.java:95)
at
com.ibm.wps.pe.pc.std.invoker.impl.PortletServlet.dispatch(PortletServlet.java:148)
at
com.ibm.wps.pe.pc.std.invoker.impl.PortletServlet.doPost(PortletServlet.java:76)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at
com.ibm.wps.pe.pc.std.cache.CacheablePortlet.service(CacheablePortlet.java:256)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at
com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at
com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
at
com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at
com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
at
com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at
com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
atcom.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1033)
at
com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:603)
at
com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:257)
at
com.ibm.wps.pe.pc.std.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerImpl.java:204)
at
com.ibm.wps.pe.pc.std.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerImpl.java:168)
at
com.ibm.wps.pe.pc.std.invoker.impl.PortletInvokerImpl.action(PortletInvokerImpl.java:82)
at com.ibm.wps.pe.pc.std.event.ActionEvent.execute(ActionEvent.java:107)
at
com.ibm.wps.pe.pc.std.event.EventQueueManager.processEventLoop(EventQueueManager.java:85)
at
com.ibm.wps.pe.pc.std.PortletContainerImpl.performEvents(PortletContainerImpl.java:175)
at
com.ibm.wps.pe.pc.PortletContainerImpl.performEvents(PortletContainerImpl.java:213)
at
com.ibm.wps.engine.phases.WPActionPhase.processPortlets(WPActionPhase.java:1170)
at com.ibm.wps.engine.phases.WPActionPhase.execute(WPActionPhase.java:561)
at
com.ibm.wps.state.phases.AbstractActionPhase.next(AbstractActionPhase.java:130)
at com.ibm.wps.engine.Servlet.callPortal(Servlet.java:638)
at com.ibm.wps.engine.Servlet.doGet(Servlet.java:496)
at com.ibm.wps.engine.Servlet.doPost(Servlet.java:664)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at
com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at
com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
at
com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at
com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
at
com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at
com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:76)
at com.ibm.wps.state.filter.StateCleanup.doFilter(StateCleanup.java:71)
at
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:132)
at
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:71)
at com.ibm.wps.mappingurl.impl.URLAnalyzer.doFilter(URLAnalyzer.java:174)
at
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:132)
at
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:71)
atcom.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1029)
at
com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:603)
at
com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:204)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java
:125)
at
com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:286)
atcom.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
at
com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
at
com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
at
com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java
:615)
at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:439)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:912)
I noticed in the server startup log, it didn't
mentiondialog-config.xmlbeing loaded, as you can see below:
[10/24/05 12:57:53:531 EDT] 30d2432e ApplicationMg A WSVR0200I: Starting
application: MyTestEAR
[10/24/05 12:57:55:534 EDT] 30d2432e WebContainer A SRVE0169I: Loading Web
Module: MyTest.
[10/24/05 12:57:55:974 EDT] 30d2432e ChainListener
Iorg.apache.commons.chain.web.ChainListener Initializing chain
listener
[10/24/05 12:57:56:725 EDT] 30d2432e ContextLoader
Iorg.springframework.web.context.ContextLoader Root
WebApplicationContext:
initialization started
[10/24/05 12:57:56:735 EDT] 30d2432e WebGroup I SRVE0180I: [MyTest]
[/.MyTest] [Servlet.LOG]: Loading Spring root WebApplicationContext
[10/24/05 12:57:57:146 EDT] 30d2432e XmlBeanDefini
Iorg.springframework.beans.factory.xml.XmlBeanDefinitionReader Loading
XML
bean definitions from ServletContext resource [/WEB-INF/spring-portlet.xml]
[10/24/05 12:57:57:166 EDT] 30d2432e XmlWebApplica
Iorg.springframework.web.context.support.XmlWebApplicationContext Bean
factory for application context [Root
WebApplicationContext]:org.springframework.beans.factory.support.DefaultListableBeanFactorydefining
beans []; root of BeanFactory hierarchy
[10/24/05 12:57:57:256 EDT] 30d2432e XmlWebApplica
Iorg.springframework.web.context.support.XmlWebApplicationContext No
beans
defined in application context [Root WebApplicationContext]
[10/24/05 12:57:57:296 EDT] 30d2432e CollectionFac
Iorg.springframework.core.CollectionFactory JDK 1.4+ collections
available
[10/24/05 12:57:57:346 EDT] 30d2432e CollectionFac
Iorg.springframework.core.CollectionFactory Commons Collections 3.x
available
[10/24/05 12:57:57:366 EDT] 30d2432e XmlWebApplica
Iorg.springframework.web.context.support.XmlWebApplicationContext
Unable to
locate MessageSource with name 'messageSource': using default [
[EMAIL PROTECTED]
[10/24/05 12:57:57:386 EDT] 30d2432e XmlWebApplica
Iorg.springframework.web.context.support.XmlWebApplicationContext
Unable to
locate ApplicationEventMulticaster with name 'applicationEventMulticaster':
using default [
[EMAIL PROTECTED]
]
[10/24/05 12:57:57:396 EDT] 30d2432e UiApplication
Iorg.springframework.ui.context.support.UiApplicationContextUtils No
ThemeSource found for [Root WebApplicationContext]: using
ResourceBundleThemeSource
[10/24/05 12:57:57:426 EDT] 30d2432e DefaultListab
Iorg.springframework.beans.factory.support.DefaultListableBeanFactoryPre-instantiating
singletons in factory
[org.springframework.beans.factory.support.DefaultListableBeanFactorydefining
beans []; root of BeanFactory hierarchy]
[10/24/05 12:57:57:456 EDT] 30d2432e ContextLoader
Iorg.springframework.web.context.ContextLoader Using context class
[org.springframework.web.context.support.XmlWebApplicationContext] for
root
WebApplicationContext
[10/24/05 12:57:57:456 EDT] 30d2432e ContextLoader
Iorg.springframework.web.context.ContextLoader Root
WebApplicationContext:
initialization completed in 731 ms
[10/24/05 12:57:57:477 EDT] 30d2432e ClayConfigure
Iorg.apache.shale.clay.config.ClayConfigureListener Begin loading
config
files.
[10/24/05 12:57:57:537 EDT] 30d2432e ComponentConf
Iorg.apache.shale.clay.config.beans.ComponentConfigBean Loading file
"file:/C:/jsf/workspace/MyTest/WebContent/WEB-INF/lib/shale-clay.jar!/META-INF/clay-config.xml".
[10/24/05 12:57:57:547 EDT] 30d2432e ClayXmlParser
Iorg.apache.shale.clay.config.ClayXmlParser Loading digester rules.
[10/24/05 12:57:57:757 EDT] 30d2432e ComponentConf
Iorg.apache.shale.clay.config.beans.ComponentConfigBean Loading file
"/C:/jsf/workspace/MyTest/WebContent/WEB-INF/clay-config.xml".
[10/24/05 12:57:57:797 EDT] 30d2432e ComponentConf
Iorg.apache.shale.clay.config.beans.ComponentConfigBean Begin
resolving
inheritance @:-<
[10/24/05 12:57:57:807 EDT] 30d2432e ComponentConf
Iorg.apache.shale.clay.config.beans.ComponentConfigBean Finding
parents ?:-[
[10/24/05 12:57:57:807 EDT] 30d2432e ComponentConf
Iorg.apache.shale.clay.config.beans.ComponentConfigBean Checking for
circular
inheritance %:-{
[10/24/05 12:57:57:807 EDT] 30d2432e ComponentConf
Iorg.apache.shale.clay.config.beans.ComponentConfigBean Realizing
heritage
$:-<
[10/24/05 12:57:57:817 EDT] 30d2432e ComponentConf
Iorg.apache.shale.clay.config.beans.ComponentConfigBean Inheritance
resolved
@:-)
[10/24/05 12:57:57:867 EDT] 30d2432e ClayConfigure
Iorg.apache.shale.clay.config.ClayConfigureListener Done loading
config
file(s).
[10/24/05 12:57:58:278 EDT] 30d2432e FacesConfigur
Iorg.apache.myfaces.config.FacesConfigurator Reading standard config
org/apache/myfaces/resource/standard-faces-config.xml
[10/24/05 12:57:58:368 EDT] 30d2432e FacesConfigur
Iorg.apache.myfaces.config.FacesConfigurator Reading config
wsjar:file:/C:/jsf/workspace/MyTest/WebContent/WEB-INF/lib/myfaces-all.jar!/META-INF/faces-config.xml
[10/24/05 12:57:58:418 EDT] 30d2432e FacesConfigur
Iorg.apache.myfaces.config.FacesConfigurator Reading config
wsjar:file:/C:/jsf/workspace/MyTest/WebContent/WEB-INF/lib/shale-clay.jar!/META-INF/faces-config.xml
[10/24/05 12:57:58:428 EDT] 30d2432e FacesConfigur
Iorg.apache.myfaces.config.FacesConfigurator Reading config
wsjar:file:/C:/jsf/workspace/MyTest/WebContent/WEB-INF/lib/shale-core.jar!/META-INF/faces-config.xml
[10/24/05 12:57:58:538 EDT] 30d2432e FacesConfigur
Iorg.apache.myfaces.config.FacesConfigurator Reading config
wsjar:file:/C:/jsf/workspace/MyTest/WebContent/WEB-INF/lib/shale-spring.jar!/META-INF/faces-config.xml
[10/24/05 12:57:58:568 EDT] 30d2432e FacesConfigur
Iorg.apache.myfaces.config.FacesConfigurator Reading config
/WEB-INF/faces-config.xml
[10/24/05 12:57:58:598 EDT] 30d2432e FacesConfigur
Iorg.apache.myfaces.config.FacesConfigurator Reading config
/WEB-INF/faces-config.xml
[10/24/05 12:57:58:909 EDT] 30d2432e LocaleUtils
Eorg.apache.myfaces.util.LocaleUtils Locale name null or empty,
ignoring
[10/24/05 12:57:58:959 EDT] 30d2432e ClayViewHandl
Iorg.apache.shale.clay.faces.ClayViewHandler Loading Clay View Handler
[10/24/05 12:58:00:581 EDT] 30d2432e StartupServle
Iorg.apache.myfaces.webapp.StartupServletContextListener
ServletContext
'C:\jsf\workspace\MyTest\WebContent' initialized.
[10/24/05 12:58:00:581 EDT] 30d2432e WebGroup I SRVE0180I: [MyTest]
[/.MyTest] [Servlet.LOG]: JSP 1.2 Processor: init
[10/24/05 12:58:00:952 EDT] 30d2432e WebGroup I SRVE0180I: [MyTest]
[/.MyTest] [Servlet.LOG]: SimpleFileServlet: init
[10/24/05 12:58:00:972 EDT] 30d2432e WebGroup I SRVE0180I: [MyTest]
[/.MyTest] [Servlet.LOG]: com_ibm_wps_AdminServlet: init
[10/24/05 12:58:00:982 EDT] 30d2432e ApplicationMg A WSVR0221I: Application
started: MyTestEAR
My /WEB-INF/dialog-config.xml content is:
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2004-2005 The Apache Software Foundation.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
$Id: dialog-config.xml 289940 2005-09-18 15:46:04Z wsmoak $
-->
<!--
Dialog definitions for Shale Use Cases Example Web Application
-->
<!DOCTYPE dialogs PUBLIC
"-//Apache Software Foundation//DTD Shale Dialog Configuration 1.0//EN"
"http://struts.apache.org/dtds/shale-dialog-config_1_0.dtd"
<http://struts.apache.org/dtds/shale-dialog-config_1_0.dtd%22>;>
<dialogs>
<!-- Edit Profile Dialog -->
<dialog name="DialogAddPerson"
start="Setup">
<!-- Global transitioh definitions -->
<transition outcome="cancel"
target="Cancel"/>
<action name="Setup"
method="#{dummy.alwaysTrue}">
<transition outcome="true"
target="Page 1"/>
</action>
<view name="Page 1"
viewId="/add.html">
</view>
<action name="Cancel"
method="#{dummy.alwaysTrue}">
<transition outcome="true"
target="Exit"/>
</action>
<end name="Exit"
viewId="/view.html"/>
</dialog>
</dialogs>
Did I miss something? Any help would be highly appreciated!