0 Replies Latest reply on Feb 13, 2006 11:16 AM by Robert S. Sfeir

    Deploying Portal in multiple war files fails

    Robert S. Sfeir Newbie

      Hi,

      Here is my setup and what I'm trying to do:

      JBoss Portal 2.0.1 with JBoss 4.0.3 SP 1.

      We have 2 portlets right now, which do quite a bit of work.

      Portlet 1 is an alfresco web service portlet whcih displays content in the portal by getting its data from alfresco cms.

      Portlet 2 is a generic portlet which accepts an init parameter called URL which displays content based on html and jsp files stores inside the WEB-INF directory of our main portal war file.

      We have 1 layout war file (that works)

      We have 1 portal war file which contains the *-pages.xml and eric-portal.xml files.

      What I did first is have 2 war files. One for the layout and one for the portal and portlets, and everything worked great. Then we decided that since the JBoss portal and JSR-168 spec supports it, we were going to deploy each portlet in its own war file, and put the portal 'display' data in its own war file, hence how we came to the above layout.

      Portlet 1 and 2 have their respective source files, and in WEB-INF have their respective jboss-portlet.xml, jboss-web.xml, portlet-instances.xml, portlet.xml and web.xml.

      here is a sample of what is in the alfrescoCMSPortlet:

      jboss-portlet.xml:
      <portlet-app>

      <portlet-name>WelcomePortlet</portlet-name>



      <portlet-name>InfoPortlet</portlet-name>



      <portlet-name>HelpPortlet</portlet-name>



      <portlet-name>LinksPortlet</portlet-name>




      jboss-web.xml:
      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.4//EN"
      "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd">
      <jboss-web>
      <context-root>/ericAlfrescoCMS</context-root>
      </jboss-web>


      portlet-instances.xml:

      <?xml version="1.0" standalone="yes"?>


      <instance-name>WelcomePortletInstance</instance-name>
      <component-ref>WelcomePortlet</component-ref>


      <instance-name>InfoPortletInstance</instance-name>
      <component-ref>InfoPortlet</component-ref>


      <instance-name>RobertPortletInstance</instance-name>
      <component-ref>RobertPortlet</component-ref>


      <instance-name>HelpPortletInstance</instance-name>
      <component-ref>HelpPortlet</component-ref>



      portlet.xml:
      <?xml version="1.0" encoding="UTF-8"?>
      <portlet-app 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 /opt/SUNWps/dtd/portlet.xsd"
      version="JBoss 4">

      <portlet-name>WelcomePortlet</portlet-name>
      <portlet-class>gov.nih.niaid.eric.alfrescoportlet.WSViewPortlet</portlet-class>
      <init-param>
      The name of the content in Alfresco. This is case sensitive!
      content
      Welcome
      </init-param>
      <init-param>
      The name of the data store in Alfresco. This is case sensitive! Don't change this unless you
      know what you're doing!
      repository
      SpacesStore
      </init-param>

      <mime-type>text/html</mime-type>
      <portlet-mode>VIEW</portlet-mode>

      <!--<supported-locale>en</supported-locale>-->
      <!--<resource-bundle>Resource</resource-bundle>-->
      <portlet-info>
      Welcome
      </portlet-info>


      <portlet-name>InfoPortlet</portlet-name>
      <portlet-class>gov.nih.niaid.eric.alfrescoportlet.WSViewPortlet</portlet-class>
      <init-param>
      The name of the content in Alfresco. This is case sensitive!
      content
      Info
      </init-param>
      <init-param>
      The name of the data store in Alfresco. This is case sensitive! Don't change this unless you
      know what you're doing!
      repository
      SpacesStore
      </init-param>

      <mime-type>text/html</mime-type>
      <portlet-mode>VIEW</portlet-mode>

      <!--<supported-locale>en</supported-locale>-->
      <!--<resource-bundle>Resource</resource-bundle>-->
      <portlet-info>
      Information
      </portlet-info>


      <portlet-name>RobertPortlet</portlet-name>
      <portlet-class>gov.nih.niaid.eric.alfrescoportlet.WSViewPortlet</portlet-class>
      <init-param>
      The name of the content in Alfresco. This is case sensitive!
      content
      Announcements
      </init-param>
      <init-param>
      The name of the data store in Alfresco. This is case sensitive! Don't change this unless you
      know what you're doing!
      repository
      SpacesStore
      </init-param>

      <mime-type>text/html</mime-type>
      <portlet-mode>VIEW</portlet-mode>

      <portlet-info>
      Rob's Portlet
      </portlet-info>


      <portlet-name>HelpPortlet</portlet-name>
      <portlet-class>gov.nih.niaid.eric.alfrescoportlet.WSViewPortlet</portlet-class>
      <init-param>
      The name of the content in Alfresco. This is case sensitive!
      content
      Help
      </init-param>
      <init-param>
      The name of the data store in Alfresco. This is case sensitive! Don't change this unless you
      know what you're doing!
      repository
      SpacesStore
      </init-param>

      <mime-type>text/html</mime-type>
      <portlet-mode>VIEW</portlet-mode>

      <portlet-info>
      Help
      </portlet-info>

      </portlet-app>

      web.xml is empty.

      the eric.war file, which is supposed to be our main war file containing the information about the portal contains the pages.xml files, and the eric-portal.xml file which looks like this:

      <?xml version="1.0" encoding="UTF-8"?>

      <portal-name>eric</portal-name>

      <!-- Set the layout for the default portal -->
      <!-- see also portal-layouts.xml -->

      org.jboss.portal.property.layout
      EricMainLayout

      <!-- set the default render set name (used by the render tag in layouts) -->
      <!-- see also portal-renderSet.xml -->

      org.jboss.portal.property.renderSet
      emptyRenderer

      <!-- set the default strategy name (used by the strategy interceptor) -->
      <!-- see also portal-strategies.xml -->

      org.jboss.portal.property.strategy
      default


      <supported-modes>
      VIEW
      </supported-modes>
      <supported-window-states>
      <window-state>NORMAL</window-state>
      </supported-window-states>

      <default-page>default</default-page>

      <page-name>default</page-name>

      <window-name>WelcomePortletWindow</window-name>
      <instance-ref>eric.WelcomePortlet.WelcomePortletInstance</instance-ref>
      true
      center
      0


      <window-name>InfoPortletWindow</window-name>
      <instance-ref>eric.InfoPortlet.InfoPortletInstance</instance-ref>
      true
      center
      1


      <window-name>RobertPortlet</window-name>
      <instance-ref>eric.RobertPortlet.RobertPortletInstance</instance-ref>
      true
      right
      0


      <window-name>HelpPortlet</window-name>
      <instance-ref>eric.HelpPortlet.HelpPortletInstance</instance-ref>
      true
      right
      1





      it also contains the jboss-app.xml:

      <jboss-app>
      <app-name>eric</app-name>
      </jboss-app>

      and jboss-web.xml:
      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.4//EN"
      "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd">
      <jboss-web>
      <context-root>/eric</context-root>
      </jboss-web>


      When I start up, everything goes smoothly. No errors or exceptions reported. When I hit the portal page, I get the layout with our menu etc... but no portlets. The only message that shows up is the familliar:

      [2006-02-13 10:47:52,872] Module ericLayout: Module is deployed successfully.
      10:49:37,609 WARN [RegionTagHandler] requested page has no region [center]
      10:49:37,609 WARN [RegionTagHandler] requested page has no region [right]


      Which simply means that a page tried to load but there were no portlets to diplay in the center or right regions.

      I have no idea what I am doing wrong, or if even what we're trying to is even possible, maybe we refactored the portlets out too far?

      ANy help and clues would be greatly appreciated.

      Thanks
      R