[jboss-user] [JBoss Portal] - jboss ipc

habicht do-not-reply at jboss.com
Thu Sep 20 01:40:44 EDT 2007


hello

i'm trying to solve i problem i have with jboss ipc in the example from the reference guide. i have everything configured according to the reference guide (*-object.xml, jboss-service.xml, sar-achrive). everything deployes fine without problems. when i try nothing happens. the parameters don't show up on the second portlet. even after that there are no errors in my log and according to that log my listener defined in the jboss-service.xml is registered.
my first problem i had with this example is now solved. it was because i didn't have the right structure of the sar-file (which caused a NoClassDefFound-Exception)

my-object.xml:
<page-name>test</page-name>
  |             <properties/>
  |             <window>
  |                <window-name>test1-window</window-name>
  |                <instance-ref>AInstance</instance-ref>
  |                <region>center</region>
  |                <height>0</height>
  |             </window>
  |             <window>
  |                <window-name>test2-window</window-name>
  |                <instance-ref>BInstance</instance-ref>
  |                <region>center</region>
  |                <height>0</height>
  |                <listener>test_listener</listener>
  |             </window>

jboss-service.xml:
<?xml version="1.0" encoding="UTF-8"?>
  | <server>            
  |    <mbean
  |    code="org.jboss.portal.core.event.PortalEventListenerServiceImpl"
  |    name="portal:service=ListenerService,type=test_listener"
  |    xmbean-dd=""
  |    xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
  |    <xmbean/>
  |    <depends
  |       optional-attribute-name="Registry"
  |       proxy-type="attribute">portal:service=ListenerRegistry</depends>
  |    <attribute name="RegistryId">test_listener</attribute>
  |    <attribute name="ListenerClassName">test.PortletB$Listener</attribute>
  | </mbean>
  | </server>

PortletB.java
package test;
  | 
  | import java.io.IOException;
  | import java.io.PrintWriter;
  | 
  | import javax.portlet.ActionRequest;
  | import javax.portlet.ActionResponse;
  | import javax.portlet.GenericPortlet;
  | import javax.portlet.PortletException;
  | import javax.portlet.PortletSecurityException;
  | import javax.portlet.RenderRequest;
  | import javax.portlet.RenderResponse;
  | 
  | import org.jboss.portal.WindowState;
  | import org.jboss.portal.api.node.PortalNode;
  | import org.jboss.portal.api.node.event.PortalNodeEvent;
  | import org.jboss.portal.api.node.event.PortalNodeEventContext;
  | import org.jboss.portal.api.node.event.PortalNodeEventListener;
  | import org.jboss.portal.api.node.event.WindowActionEvent;
  | 
  | public class PortletB extends GenericPortlet
  | {
  | 
  |    public void processAction(ActionRequest request, ActionResponse response)
  |               throws PortletException, PortletSecurityException, IOException
  |    {
  |       String color = request.getParameter("color");
  |       if (color != null)
  |       {
  |          response.setRenderParameter("color", color);
  |       }
  |    }
  | 
  |    protected void doView(RenderRequest request, RenderResponse response)
  |           throws PortletException, PortletSecurityException, IOException
  |    {
  |       String color = request.getParameter("color");
  |       response.setContentType("text/html");
  |       PrintWriter writer = response.getWriter();
  |       writer.println("<div" +
  |          (color == null ? "" : " style=\"color:" + color + ";\"") +
  |          ">some text in color</div>");
  |       writer.close();
  |    }
  |    
  |    public static class Listener implements PortalNodeEventListener
  |    {
  |       public PortalNodeEvent onEvent(PortalNodeEventContext context, PortalNodeEvent event)
  |       {
  |          PortalNode node = event.getNode();
  |          // Get node name
  |          String nodeName = node.getName();
  |          // See if we need to create a new event or not
  |          WindowActionEvent newEvent = null;
  |          if (nodeName.equals("test1-window") && event instanceof WindowActionEvent)
  |          {
  |             // Find window B
  |             WindowActionEvent wae = (WindowActionEvent)event;
  |             PortalNode windowB = node.resolve("../test2-window");
  |             if (windowB != null)
  |             {
  |                // We can redirect
  |                newEvent = new WindowActionEvent(windowB);
  |                newEvent.setParameters(wae.getParameters());
  |                
  |    			// Due to a bug those 2 following lines are required but have no meaning for now
  |    			// See: http://jira.jboss.com/jira/browse/JBPORTAL-1604            
  |                newEvent.setMode(wae.getMode());
  |                newEvent.setWindowState(WindowState.MAXIMIZED);
  |                
  |                // Redirect to the new event
  |                return newEvent;
  |             }
  |          }
  |          // Otherwise bubble up
  |          return context.dispatch();
  |       }
  |    } 
  | }

PortletA.java
package test;
  | 
  | import java.io.IOException;
  | import java.io.PrintWriter;
  | 
  | import javax.portlet.GenericPortlet;
  | import javax.portlet.PortletException;
  | import javax.portlet.PortletSecurityException;
  | import javax.portlet.RenderRequest;
  | import javax.portlet.RenderResponse;
  | 
  | public class PortletA extends GenericPortlet
  | {
  |    protected void doView(RenderRequest request, RenderResponse response)
  |       throws PortletException, PortletSecurityException, IOException
  |    {
  |       response.setContentType("text/html");
  |       PrintWriter writer = response.getWriter();
  |       writer.println("<form action=\"" + response.createRenderURL() + "\" method=\"post\">");
  |       writer.println("<select name=\"color\">");
  |       writer.println("<option>blue</option>");
  |       writer.println("<option>red</option>");
  |       writer.println("<option>black</option>");
  |       writer.println("</select>");
  |       writer.println("<input type=\"submit\"/>");
  |       writer.println("</form>");
  |       writer.close();      
  |    }
  | }

my system:
Windows XP Pro SP2
Java 1.5.0_09
JBoss Portal 2.6 Bundle (binary)
PostgreSQL 8.3


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4086440#4086440

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4086440



More information about the jboss-user mailing list