4 Replies Latest reply on Apr 27, 2006 9:24 AM by msmcgovern

    Inter-portlet communication exception

    msmcgovern

      Hi,

      I am having trouble getting IPC working between portlets. The test event portlet in the default portal application works. I am running the following software versions:


      jboss 4.0.4 CR2
      jboss portal 2.2.1RC3 built from src using jdk 1.5.0_06


      First, I started with my own portlets, but then I downloaded the HelloWorldIPC.zip portlet from PortalSwap (http://labs.jboss.com/file-access/default/members/portletswap/downloads/portlets/samples/HelloWorldIPC.zip). I am getting the same error with the HelloWorldIPC portlets as with my custom code. There are no deployment errors when deploying the .helloworldipc.sar file.

      The exception is as follows:


      exception
      
      javax.servlet.ServletException: Servlet execution threw an exception
       org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      
      root cause
      
      java.lang.NoSuchMethodError: org.jboss.portlet.event.node.WindowActionEvent.getParameters()Lorg/jboss/portal/server/util/Parameters;
       org.jboss.portlet.hello.HelloWorldPortletB$Listener.onEvent(Unknown Source)
       org.jboss.portal.core.impl.model.portal.PortalObjectImpl$Bubbler.dispatch(PortalObjectImpl.java:479)
       org.jboss.portal.core.impl.model.portal.PortalObjectImpl$Bubbler.dispatch(PortalObjectImpl.java:494)
       org.jboss.portal.core.impl.model.portal.PortalObjectImpl$PortalNodeImpl.firePreEvent(PortalObjectImpl.java:435)
       org.jboss.portal.core.aspects.controller.EventBroadcasterInterceptor.invoke(EventBroadcasterInterceptor.java:63)
       org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:38)
       org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:130)
       org.jboss.portal.core.aspects.controller.PolicyEnforcementInterceptor.invoke(PolicyEnforcementInterceptor.java:168)
       org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:38)
       org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:130)
       org.jboss.portal.core.aspects.controller.PortalNodeInterceptor.invoke(PortalNodeInterceptor.java:61)
       org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:38)
       org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:130)
       org.jboss.portal.core.aspects.controller.NavigationInterceptor.invoke(NavigationInterceptor.java:58)
       org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:38)
       org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:130)
       org.jboss.portal.server.invocation.Invocation.invoke(Invocation.java:175)
       org.jboss.portal.core.command.CommandContext.execute(CommandContext.java:107)
       org.jboss.portal.core.command.ExecutionContext.execute(ExecutionContext.java:93)
       org.jboss.portal.core.command.ExecutionContext.execute(ExecutionContext.java:77)
       org.jboss.portal.core.CoreController.handle(CoreController.java:190)
       sun.reflect.GeneratedMethodAccessor246.invoke(Unknown Source)
       sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       java.lang.reflect.Method.invoke(Method.java:585)
       org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
       org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
       org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
       org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
       org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
       org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
       org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:260)
       org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
       org.jboss.mx.util.JMXInvocationHandler.invoke(JMXInvocationHandler.java:287)
       $Proxy135.handle(Unknown Source)
       org.jboss.portal.server.ServerInvocation.dispatch(ServerInvocation.java:76)
       org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:140)
       org.jboss.portal.core.aspects.server.SubjectAssociationInterceptor.invoke(SubjectAssociationInterceptor.java:47)
       org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
       org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:130)
       org.jboss.portal.core.aspects.server.PolicyAssociationInterceptor.invoke(PolicyAssociationInterceptor.java:52)
       org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
       org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:130)
       org.jboss.portal.server.aspects.server.ContentTypeInterceptor.invoke(ContentTypeInterceptor.java:68)
       org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
       org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:130)
       org.jboss.portal.core.aspects.server.LocaleInterceptor.invoke(LocaleInterceptor.java:69)
       org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
       org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:130)
       org.jboss.portal.core.aspects.server.UserInterceptor.invoke(UserInterceptor.java:184)
       org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
       org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:130)
       org.jboss.portal.server.aspects.server.SessionInvalidatorInterceptor.invoke(SessionInvalidatorInterceptor.java:87)
       org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
       org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:130)
       org.jboss.portal.core.aspects.server.TransactionInterceptor.invoke(TransactionInterceptor.java:75)
       org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
       org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:130)
       org.jboss.portal.server.invocation.Invocation.invoke(Invocation.java:175)
       org.jboss.portal.server.servlet.PortalServlet.doGet(PortalServlet.java:221)
       org.jboss.portal.server.servlet.PortalServlet.doPost(PortalServlet.java:149)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
       org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      


      I've tried including more library files in the .sar, but it doesn't seem to make a difference. Obviously, it has something to do with the fact it is an external .sar and not integrated with the portal app. It looks like one of the .jar files is missing, but I have include every portal-*.jar file I can think of in the .sar/.war lib.

      Any ideas?

      Thanks,
      --
      McG


        • 1. Re: Inter-portlet communication exception
          dibell

          I had the same problem. The portlet seems to come bundled with portal libraries from an older version.

          I changed the build to use all the portlet-*-lib.jar files from the actual portal lib and removed the portlet-*-lib.jar files from src/resources/helloworldipcportlet-sar so they don't get build into the sar.

          That seems to have worked.

          • 2. Re: Inter-portlet communication exception

            Yes, the core libraries changed from RC2 to RC3, so your ipc portlet will not have to include the corresponding libs from RC3.

            • 3. Re: Inter-portlet communication exception
              dibell

              Thanks for the confirmation Roy.

              It turns out that removing the common and core jars from the helloworldipc.sar fixes it for deployment to a running server but when the server is restarted it fails to deploy the portlet with a ClassNotFoundException.

              I'm guessing this is something to do with the order things are started and loaded.

              Adding back the new versions of portal-common-lib.jar portal-core-lib.jar makes this work again.

              • 4. Re: Inter-portlet communication exception
                msmcgovern

                Thanks a lot fellas! I am all set. I appreciate the response.