Raible's Wiki
Raible Designs AppFuseHomepage- Korean - Chinese - Italian - Japanese QuickStart Guide User Guide Tutorials Other ApplicationsStruts ResumeSecurity Example Struts Menu
Set your name in
UserPreferences
Referenced by
JSPWiki v2.2.33
Hide Menu |
This page documents the steps necessary to migrate an existing Struts application for use as a Jetspeed The application used for testing and figuring out these steps was the Struts version of Equinox Table of Contents
Add the portals-bridges-struts-0.1.jar to your project [#1]Once you have equinox-struts and jetspeed setup, copy the portals-bridges-struts-0.1.jar from your local Maven repository into the web/WEB-INF/lib directory. cp ~/.maven/repository/portals-bridges/jars/portals-bridges-struts-0.1.jar web/WEB-INF/lib Modify web.xml to use PortletServlet instead of ActionServlet [#2]Change the "action" servlet in web/WEB-INF/web.xml to use the PortletServlet from the bridge JAR.
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.portals.bridges.struts.PortletServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
Modify struts-config.xml to override the default RequestProcessor [#3]In web/WEB-INF/struts-config.xml add a <controller> element just above the <message-resources> element to override the RequestProcessor.
<!-- ========== Controller Configuration ================================ -->
<controller pagePattern="$M$P" inputForward="true"
processorClass="org.apache.portals.bridges.struts.PortletRequestProcessor"/>
Create a portlet.xml file in the WEB-INF directory [#4]Copy and paste the following XML into a portlet.xml file in the web/WEB-INF directory.
<?xml version="1.0" encoding="UTF-8"?>
<portlet-app id="equinox-struts" version="1.0">
<portlet id="Equinox-Struts">
<init-param>
<name>ServletContextProvider</name>
<value>org.apache.jetspeed.portlet.ServletContextProviderImpl</value>
</init-param>
<init-param>
<name>ViewPage</name>
<value>/user.html</value>
</init-param>
<portlet-name>Equinox-Struts</portlet-name>
<display-name>Equinox</display-name>
<description>This is a simple portlet</description>
<portlet-class>org.apache.portals.bridges.struts.StrutsPortlet</portlet-class>
<expiration-cache>-1</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
<portlet-mode>HELP</portlet-mode>
</supports>
<portlet-info>
<title>User List</title>
<short-title>This is the short title</short-title>
<keywords>Spring</keywords>
</portlet-info>
</portlet>
</portlet-app>
Deploy the WAR to Jetspeed [#5]In build.properties, add a "deploy.dir" property so you can deploy to Jetspeed's deployer. deploy.dir=/opt/dev/tools/tomcat/webapps/jetspeed/WEB-INF/deploy Edit web/WEB-INF/classes/jdbc.properties and change the "jdbc.url" to use an absolute path. This is necessary so you can populate the HSQL database from the equinox-struts directory. jdbc.url=jdbc:hsqldb:/Users/mraible/dev/equinox-struts/db/equinox Start Tomcat and run "ant deploywar" to deploy your portlet. If you're watching Tomcat's log files ($CATALINA_HOME/logs/catalina.out) - and you don't see your WAR getting deployed, make sure the portlet.xml is in your web/WEB-INF directory. To update the WAR in Jetspeed, just run "ant deploywar" after you've modified files. To undeploy the WAR, delete the equinox-struts.war file from $CATALINA_HOME/webapps/jetspeed/WEB-INF/deploy. NOTE: These deployment instructions are based on this wiki page .
Create a .psml file so the portlet will show up in Jetspeed [#6]Create a equinox-struts.psml file in $CATALINA_HOME/webapps/jetspeed/WEB-INF/pages with the following contents. The fragment id's must be unique among all .psml files, and the name of the portlet is read from the portlet.xml file.
<?xml version="1.0" encoding="UTF-8"?>
<page id="equinox-struts">
<defaults
skin="orange"
layout-decorator="tigris"
portlet-decorator="tigris"/>
<title>Equinox-Struts</title>
<fragment id="equinox-struts-layout" type="layout" name="jetspeed::VelocityTwoColumns">
<fragment id="equinox-struts-portlet" type="portlet" name="equinox-struts::Equinox-Struts">
<property layout="TwoColumns" name="row" value="0"/>
<property layout="TwoColumns" name="column" value="0"/>
</fragment>
</fragment>
</page>
Open http://localhost:8080/jetspeed Known Issues [#7]
|
||||||