  | Mailing List | | Home | | Forum Home | | JBoss - Java Application Server | | Tomcat - JSP/Servlet container | | Struts - A MVC web framework | | iText - An open source PDF Java Library | | JDOM - JDOM XML Parser | | JSP - A mailing list about Java Server Pages specification and reference | | J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition | | J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog | | Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology | |
Struts & Hibernate
|
|
|
  | | | -none- | -none- 2007-08-15 - By Nils-Helge Garli
Back Are you creating the urls correctly using the s:url tag? Do you have an example JSP? How do you invoke your portlet application? Remember that you can't access the portlet using regular urls, they all have to go through the portlet container.
Nils-H
On 8/15/07, Frederick N. Brier <fbrier@(protected)> wrote: > I am pretty sure this is a configuration issue, probably in struts.xml. > I am trying to create a JSR168 compliant portlet. I have been working > with the portletunit code to get it to execute in a unit test, as well > as running it with JBossPortal. The behavior is the same, so I am > hoping it is not an issue of the test harness introducing an issue. I > debug/traced the execution. The Action is correctly constructed using > the SpringFactory along with all properties. It is invoked and executes > without error. It gets to DefaultActionInvocation having created a > PortletResult, and calls result.execute(this). The lastFinalLocation is > set to the location of the jsp specified in the struts.xml. > PortletResult.doExecute() calls executeRegularServletResult(). > > Should I have been in render mode at this point and had > executeRenderResult called instead? I have seen a number of posting > saying "best practice" is to redirect to another action executing in > render phase that then specifies the jsp as the result. Mine ends up > calling PreparatorServlet.service and sets up the servlet request > parameters into the ActionContext, and then ends, having never called > the jsp. I also am not seeing where the Jsr168Dispatcher is ever > invoked. It does not show up in the stack as I execute. I do not know > if that is an issue. > > I have tried a number of combinations of XML including trying to > redirect to a "renderDirect.action" which then redirects to the .jsp. > Problem is that I have found no examples of using this action, and I > have not stumbled on the answer. I have tried setting the result type > to redirect... no joy. I am using Struts 2.0.9. If anyone could take a > peek at my struts.xml and tell me what I am doing wrong, I would be > eternally grateful. I do not understand how my code differs from the > HelloWorld portlet examples that I started with. Thank you. > > Fred > > -- ---- ---- ---- ---- ---struts.xml-- ---- ---- ---- ---- ---- --- > <?xml version="1.0" encoding="UTF-8 (See http://UTF-8.ora-code.com)" ?> > <!DOCTYPE struts PUBLIC > "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" > "http://struts.apache.org/dtds/struts-2 (See http://uts-2.ora-code.com).0.dtd"> > > <struts> > <include file="struts-portlet-default.xml" /> > > <package name="basePortlet" extends="struts-portlet-default"> > <interceptors> > <interceptor-stack name="portletStack"> > <interceptor-ref name="basicStack"/> > <interceptor-ref name="portlet-preferences" /> > </interceptor-stack> > </interceptors> > <default-interceptor-ref name="portletStack"/> > </package> > > <package name="view" extends="basePortlet" namespace="/view"> > <action name="index" class="viewMyPortlet"> > <result name="success">/WEB-INF/view/MyPortlet.jsp</result> > </action> > <action name="viewMyPortlet" class="viewMyPortlet"> > <result name="success">/WEB-INF/view/MyPortlet.jsp</result> > </action> > <action name="viewMyPortletSubcomponent1" class="viewMyPortlet"> > <result > name="success">/WEB-INF/view/MyPortletSubcomponent1.jsp</result> > </action> > </package> > > <package name="edit" extends="basePortlet" namespace="/edit"> > <action name="index" class="com.opensymphony.xwork2.ActionSupport"> > <result name="success">/WEB-INF/edit/index.jsp</result> > </action> > </package> > > <package name="help" extends="basePortlet" namespace="/help"> > <action name="index" class="com.opensymphony.xwork2.ActionSupport"> > <result name="success">/WEB-INF/help/index.jsp</result> > </action> > </package> > </struts> > -- ---- ---- ---- ---- ---applicationContext.xml-- ---- ---- ------ > ... > <bean id="viewMyPortlet" class="com.mycompany.MyPortletAction" > scope="prototype" autowire="byName"> > ... > </bean> > ... > -- ---- ---- ---- ---- ---portlet.xml-- ---- ---- ---- ---- ---- ---- > <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="struts-portlet"> > <portlet id="MySamplePortlet"> > <description>A Sample Portlet</description> > <portlet-name>MySamplePortlet</portlet-name> > <display-name>Sample Portlet</display-name> > > > <portlet-class>org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher< /portlet-class> > > <init-param> > <!-- The view mode namespace. Maps to a namespace in the xwork > config file --> > <name>viewNamespace</name> > <value>/view</value> > </init-param> > <init-param> > <!-- The default action to invoke in view mode --> > <name>defaultViewAction</name> > <value>index</value> > </init-param> > <init-param> > <!-- The view mode namespace. Maps to a namespace in the xwork > config file --> > <name>editNamespace</name> > <value>/edit</value> > </init-param> > <init-param> > <!-- The default action to invoke in view mode --> > <name>defaultEditAction</name> > <value>index</value> > </init-param> > <init-param> > <!-- The view mode namespace. Maps to a namespace in the xwork > config file --> > <name>helpNamespace</name> > <value>/help</value> > </init-param> > <init-param> > <!-- The default action to invoke in view mode --> > <name>defaultHelpAction</name> > <value>index</value> > </init-param> > > <expiration-cache>0</expiration-cache> > > <supports> > <mime-type>text/html</mime-type> > <portlet-mode>edit</portlet-mode> > <portlet-mode>help</portlet-mode> > </supports> > > <supported-locale>en</supported-locale> > > <portlet-info> > <title>Sample Portlet</title> > <short-title>Sample View Portlet</short-title> > <keywords>Sample View</keywords> > </portlet-info> > </portlet> > </portlet-app> > -- ---- ---- ---- ---- ---web.xml-- ---- ---- ---- ---- ---- ---- > <?xml version="1.0" encoding="UTF-8 (See http://UTF-8.ora-code.com)"?> > <!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="MyPortletPortlet"> > <!-- Uncomment/comment this if you need/don't need Spring support --> > <context-param> > <param-name>contextConfigLocation</param-name> > <param-value>/WEB-INF/applicationContext.xml</param-value> > </context-param> > <filter id="filterdispatcher"> > <filter-name>action2</filter-name> > <filter-class> > org.apache.struts2.dispatcher.FilterDispatcher > </filter-class> > </filter> > > <filter-mapping> > <filter-name>action2</filter-name> > <url-pattern>/*</url-pattern> > </filter-mapping> > > <listener> > <listener-class> > org.springframework.web.context.ContextLoaderListener > </listener-class> > </listener> > <listener> > <listener-class> > org.apache.struts2.portlet.context.ServletContextHolderListener > </listener-class> > </listener> > > <servlet id="preparator"> > <servlet-name>preparator</servlet-name> > <servlet-class> > org.apache.struts2.portlet.context.PreparatorServlet > </servlet-class> > </servlet> > <servlet id="dwr"> > <servlet-name>dwr</servlet-name> > <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> > </servlet> > > <servlet-mapping> > <servlet-name>preparator</servlet-name> > <url-pattern>/*</url-pattern> > </servlet-mapping> > > <servlet-mapping> > <servlet-name>dwr</servlet-name> > <url-pattern>/dwr/*</url-pattern> > </servlet-mapping> > > </web-app> > > > -- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ------ > To unsubscribe, e-mail: user-unsubscribe@(protected) > For additional commands, e-mail: user-help@(protected) > >
-- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ------ To unsubscribe, e-mail: user-unsubscribe@(protected) For additional commands, e-mail: user-help@(protected)
|
|
 |