Hello, i am new to this list. I am trying to develop an application based on struts 2 + jsf plugin + portlet. I am using struts 2 support for portlet. As appl server i am using weblogic. Now i have reached a point were i am getting an error, but i have no idea how to pass it. I have managed to make the portlet working in weblogic but when a try to add the jsf support i get stuck. Here are my files :
web.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3 //EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app id="bookmark-portlet"> <!-- JavaServer Faces Servlet Configuration, not used directly --> <servlet> <servlet-name>faces</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>JspSupportServlet</servlet-name> <servlet-class>org.apache.struts2.views.JspSupportServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- JavaServer Faces Servlet Mapping, not called directly --> <servlet-mapping> <servlet-name>faces</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping> </web-app> portlet.xml <?xml version="1.0" encoding="UTF-8"?> <portlet-app version="1.0" xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" id="bookmark-portlet"> <portlet id="HelloPortlet"> <description>Simple hello world portlet</description> <portlet-name>StrutsDocumentPortlet</portlet-name> <display-name>StrutsDocumentPortlet</display-name> <portlet-class> org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher</portlet-class> <!-- The namespace for the actions configured for view mode --> <init-param> <name>viewNamespace</name> <value>/view</value> </init-param> <!-- The default action to invoke in view mode. --> <init-param> <name>defaultViewAction</name> <value>index</value> </init-param> <!-- The namespace for the actions configured for edit mode --> <init-param> <name>editNamespace</name> <value>/edit</value> </init-param> <!-- The default action to invoke in edit mode. --> <init-param> <name>defaultEditAction</name> <value>index!input</value> </init-param> <expiration-cache>0</expiration-cache> <supports> <mime-type>text/html</mime-type> <portlet-mode>view</portlet-mode> <portlet-mode>edit</portlet-mode> </supports> <!--<supported-locale>en</supported-locale>--> <portlet-info> <title>HelloPortlet</title> <short-title>HelloPortlet</short-title> <keywords>struts 2,portlet,hello,world</keywords> </portlet-info> </portlet> </portlet-app> struts.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="struts-jsf.xml"/> <package name="default" extends="struts-portlet-default" namespace="/view"> <action name="index" class="com.mycompany.HelloAction"> <interceptor-ref name="basicStack"/> <interceptor-ref name="jsfStack"/> <result name="success" type="jsf"/> <result name="index" type="redirect-action">index</result> <result>/WEB-INF/jsp/view/index.jsp</result> </action> </package> <package name="edit" extends="struts-portlet-default" namespace="/edit"> <action name="index" class="com.mycompany.UpdateNameAction"> <result type="redirectAction"> <param name="actionName">index</param> <param name="portletMode">view</param> </result> <result name="input">/WEB-INF/jsp/edit/index.jsp</result> </action> </package> </struts> struts-jsf.xml <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="jsf" extends="jsf-default" namespace="/jsf"> <result-types> <result-type name="jsf" class="org.apache.struts2.jsf.FacesResult" /> </result-types> <interceptors> <interceptor-stack name="jsfFullStack"> <interceptor-ref name="params" /> <interceptor-ref name="basicStack"/> <interceptor-ref name="jsfStack"/> </interceptor-stack> </interceptors> <default-interceptor-ref name="jsfFullStack"/> </package> </struts> When i am loading the portlet in browser i get this error (the error is not thrown into the weblogic console, i see this error in the portlet window). javax.portlet.PortletException at com.bea.portlet.container.PortletStub.getPortletInstance(PortletStub.java:645) at com.bea.portlet.container.PortletStub.init(PortletStub.java:190) at com.bea.portlet.container.AppContainer.invokeRender(AppContainer.java:637) at com.bea.netuix.servlets.controls.content.JavaPortletContent.fireRender( JavaPortletContent.java:208) at com.bea.netuix.servlets.controls.content.JavaPortletContent.renderInternal( JavaPortletContent.java:127) at com.bea.netuix.servlets.controls.content.JavaPortletContent.beginRender( JavaPortletContent.java:83) at com.bea.netuix.nf.ControlLifecycle$7.visit(ControlLifecycle.java:483) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:518) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:220) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:375) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:341) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:332) at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:306) at com.bea.netuix.nf.UIControl.render(UIControl.java:578) at com.bea.netuix.servlets.controls.PresentationContext.render( PresentationContext.java:482) at com.bea.netuix.servlets.util.RenderToolkit.renderChild(RenderToolkit.java:146) at com.bea.netuix.servlets.jsp.taglib.RenderChild.doStartTag( RenderChild.java:62) at jsp_servlet._framework._skeletons._portal.__gridlayout._jspService(__gridlayout.java:301) at weblogic.servlet.jsp.JspBase.service(JspBase.java:34) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run( StubSecurityHelper.java:226) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet( StubSecurityHelper.java:124) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283) at weblogic.servlet.internal.ServletStubImpl.onAddToMapException( ServletStubImpl.java:391) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:309) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175) at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet( RequestDispatcherImpl.java:503) at weblogic.servlet.internal.RequestDispatcherImpl.include( RequestDispatcherImpl.java:431) at com.bea.netuix.servlets.controls.application.laf.JspTools.renderJsp( JspTools.java:123) at com.bea.netuix.servlets.controls.application.laf.JspControlRenderer.beginRender (JspControlRenderer.java:72) at com.bea.netuix.servlets.controls.application.laf.PresentationControlRenderer.beginRender (PresentationControlRenderer.java:65) at com.bea.netuix.nf.ControlLifecycle$7.visit(ControlLifecycle.java:479) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:518) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529 at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:220) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:375) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:341) at com.bea.netuix.nf.Lifecycle.runOutbound(Lifecycle.java:188) at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:142) at com.bea.netuix.servlets.manager.UIServlet.runLifecycle(UIServlet.java:377) at com.bea.netuix.servlets.manager.UIServlet.doPost(UIServlet.java:253) at com.bea.netuix.servlets.manager.UIServlet.doGet(UIServlet.java:206) at com.bea.netuix.servlets.manager.UIServlet.service(UIServlet.java:191) at com.bea.netuix.servlets.manager.SingleFileServlet.service( SingleFileServlet.java:258) at com.bea.netuix.servlets.manager.PortalServlet.service(PortalServlet.java:656) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run( StubSecurityHelper.java:226) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet( StubSecurityHelper.java:124) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at com.bea.portal.tools.servlet.http.HttpContextFilter.doFilter( HttpContextFilter.java:60) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at com.bea.p13n.servlets.PortalServletFilter.doFilter( PortalServletFilter.java:315) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at weblogic.servlet.internal.RequestEventsFilter.doFilter( RequestEventsFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run( WebAppServletContext.java:3368) at weblogic.security.acl.internal.AuthenticatedSubject.doAs( AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(Unknown Source) at weblogic.servlet.internal.WebAppServletContext.securedExecute( WebAppServletContext.java:2117) at weblogic.servlet.internal.WebAppServletContext.execute( WebAppServletContext.java:2023) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200) at weblogic.work.ExecuteThread.run(ExecuteThread.java:172) Caused by: Unable to load configuration. - action - file:/C:/srv/bea10/user_projects/domains/domain/autodeploy/portal.ear/portal.war/WEB-INF/classes/struts.xml:10:64 at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration( ConfigurationManager.java:58) at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration( Dispatcher.java:370) at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:423) at org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher.init( Jsr168Dispatcher.java:198) at com.bea.portlet.container.PortletStub.getPortletInstance( PortletStub.java:630) ... 76 more Caused by: Error building results for action index in namespace /view - action - file:/C:/srv/bea10/user_projects/domains/domain/autodeploy/portal.ear/portal.war/WEB-INF/classes/struts.xml:10:64 at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction( XmlConfigurationProvider.java:366) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage (XmlConfigurationProvider.java:460) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages (XmlConfigurationProvider.java:268) at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages( StrutsXmlConfigurationProvider.java:109) at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer (DefaultConfiguration.java:179) at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration( ConfigurationManager.java:55) ... 80 more Caused by: There is no result type defined for type 'jsf' mapped with name 'success' - result - file:/C:/srv/bea10/user_projects/domains/domain/autodeploy/portal.ear/portal.war/WEB-INF/classes/struts.xml:13:47 at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildResults (XmlConfigurationProvider.java:613) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction( XmlConfigurationProvider.java:364) ... 85 more Nested Exception is Unable to load configuration. - action - file:/C:/srv/bea10/user_projects/domains/domain/autodeploy/portal.ear/portal.war/WEB-INF/classes/struts.xml:10:64 at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration( ConfigurationManager.java:58) at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration( Dispatcher.java:370) at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:423) at org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher.init( Jsr168Dispatcher.java:198) at com.bea.portlet.container.PortletStub.getPortletInstance( PortletStub.java:630) at com.bea.portlet.container.PortletStub.init(PortletStub.java:190) at com.bea.portlet.container.AppContainer.invokeRender(AppContainer.java:637) at com.bea.netuix.servlets.controls.content.JavaPortletContent.fireRender( JavaPortletContent.java:208) at com.bea.netuix.servlets.controls.content.JavaPortletContent.renderInternal( JavaPortletContent.java:127) at com.bea.netuix.servlets.controls.content.JavaPortletContent.beginRender( JavaPortletContent.java:83) at com.bea.netuix.nf.ControlLifecycle$7.visit(ControlLifecycle.java:483) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:518) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:220) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:375) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:341) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:332) at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:306) at com.bea.netuix.nf.UIControl.render(UIControl.java:578) at com.bea.netuix.servlets.controls.PresentationContext.render( PresentationContext.java:482) at com.bea.netuix.servlets.util.RenderToolkit.renderChild( RenderToolkit.java:146) at com.bea.netuix.servlets.jsp.taglib.RenderChild.doStartTag( RenderChild.java:62) at jsp_servlet._framework._skeletons._portal.__gridlayout._jspService(__gridlayout.java:301) at weblogic.servlet.jsp.JspBase.service(JspBase.java:34) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run( StubSecurityHelper.java:226) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet( StubSecurityHelper.java:124) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283) at weblogic.servlet.internal.ServletStubImpl.onAddToMapException( ServletStubImpl.java:391) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:309) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175) at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet( RequestDispatcherImpl.java:503) at weblogic.servlet.internal.RequestDispatcherImpl.include( RequestDispatcherImpl.java:431) at com.bea.netuix.servlets.controls.application.laf.JspTools.renderJsp( JspTools.java:123) at com.bea.netuix.servlets.controls.application.laf.JspControlRenderer.beginRender (JspControlRenderer.java:72) at com.bea.netuix.servlets.controls.application.laf.PresentationControlRenderer.beginRender (PresentationControlRenderer.java:65) at com.bea.netuix.nf.ControlLifecycle$7.visit(ControlLifecycle.java:479) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:518) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender( ControlTreeWalker.java:529) at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:220) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:375) at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:341) at com.bea.netuix.nf.Lifecycle.runOutbound(Lifecycle.java:188) at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:142) at com.bea.netuix.servlets.manager.UIServlet.runLifecycle(UIServlet.java :377) at com.bea.netuix.servlets.manager.UIServlet.doPost(UIServlet.java:253) at com.bea.netuix.servlets.manager.UIServlet.doGet(UIServlet.java:206) at com.bea.netuix.servlets.manager.UIServlet.service(UIServlet.java:191) at com.bea.netuix.servlets.manager.SingleFileServlet.service( SingleFileServlet.java:258) at com.bea.netuix.servlets.manager.PortalServlet.service(PortalServlet.java:656) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run( StubSecurityHelper.java:226) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet( StubSecurityHelper.java:124) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at com.bea.portal.tools.servlet.http.HttpContextFilter.doFilter( HttpContextFilter.java:60) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at com.bea.p13n.servlets.PortalServletFilter.doFilter( PortalServletFilter.java:315) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at weblogic.servlet.internal.RequestEventsFilter.doFilter( RequestEventsFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java :42) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run( WebAppServletContext.java:3368) at weblogic.security.acl.internal.AuthenticatedSubject.doAs( AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(Unknown Source) at weblogic.servlet.internal.WebAppServletContext.securedExecute( WebAppServletContext.java:2117) at weblogic.servlet.internal.WebAppServletContext.execute( WebAppServletContext.java:2023) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200) at weblogic.work.ExecuteThread.run(ExecuteThread.java:172) Caused by: Error building results for action index in namespace /view - action - file:/C:/srv/bea10/user_projects/domains/domain/autodeploy/portal.ear/portal.war/WEB-INF/classes/struts.xml:10:64 at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction( XmlConfigurationProvider.java:366) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage (XmlConfigurationProvider.java:460) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages (XmlConfigurationProvider.java:268) at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages( StrutsXmlConfigurationProvider.java:109) at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer (DefaultConfiguration.java:179) at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration( ConfigurationManager.java:55) ... 80 more Caused by: There is no result type defined for type 'jsf' mapped with name 'success' - result - file:/C:/srv/bea10/user_projects/domains/domain/autodeploy/portal.ear/portal.war/WEB-INF/classes/struts.xml:13:47 at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildResults (XmlConfigurationProvider.java:613) a t com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction( XmlConfigurationProvider.java:364) ... 85 more My libs are : freemarker-2.3.11.jar myfaces-api-1.1.2.jar myfaces-impl-1.1.2.jar ognl-2.6.11.jar struts2-core-2.1.1-SNAPSHOT.jar struts2-jsf-plugin-2.0.11.1.jar struts2-portlet-plugin-2.1.1-SNAPSHOT.jar xwork-2.1.1-SNAPSHOT.jar I hope that this mail is not to big. Thx in advanced, i realy need help with this issue.