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#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...