1 Reply Latest reply on Oct 1, 2008 7:37 PM by hubery

    deploy portlet to display applets failure

    hubery

      What I want to do is try to deploy a portlet to display applets, I used the example "helloworldjspportlet" downloaded from jboss portletswap.

      My jboss portal version: GA2.6.6

      I both changed helloworldjspportlet.java and porlet.xml file as following:

      1, helloworldjspportlet.java

      package org.jboss.portlet.hello;

      import javax.portlet.ActionRequest;
      import javax.portlet.ActionResponse;
      import javax.portlet.GenericPortlet;
      import javax.portlet.PortletException;
      import javax.portlet.PortletRequestDispatcher;
      import javax.portlet.RenderRequest;
      import javax.portlet.RenderResponse;
      import javax.portlet.UnavailableException;
      import java.io.IOException;
      import java.applet.*;
      import java.awt.*;


      public class HelloWorldJSPPortlet extends GenericPortlet
      {
      protected void doView(RenderRequest rRequest, RenderResponse rResponse) throws PortletException, IOException, UnavailableException
      {
      rResponse.setContentType("text/html");

      String sYourName = (String) rRequest.getParameter("yourname");

      if(sYourName != null)
      {
      rRequest.setAttribute("yourname", sYourName);
      PortletRequestDispatcher prd = getPortletContext().getRequestDispatcher("/WEB-INF/jsp/view2.jsp");
      prd.include(rRequest, rResponse);
      }
      else
      {
      PortletRequestDispatcher prd = getPortletContext().getRequestDispatcher("/WEB-INF/jsp/view.jsp");
      prd.include(rRequest, rResponse);
      }
      }

      public void processAction(ActionRequest aRequest, ActionResponse aResponse) throws PortletException, IOException, UnavailableException
      {
      String sYourname = (String) aRequest.getParameter("yourname");

      // do something

      aResponse.setRenderParameter("yourname", sYourname);
      }

      protected void doHelp(RenderRequest rRequest, RenderResponse rResponse) throws PortletException, IOException, UnavailableException
      {
      rResponse.setContentType("application/x-java-serialized-object");
      PortletRequestDispatcher prd = getPortletContext().getRequestDispatcher("/WEB-INF/jsp/help.jsp");
      prd.include(rRequest, rResponse);
      }

      protected void doEdit(RenderRequest rRequest, RenderResponse rResponse) throws PortletException, IOException, UnavailableException
      {
      rResponse.setContentType("text/html");
      PortletRequestDispatcher prd = getPortletContext().getRequestDispatcher("/WEB-INF/jsp/edit.jsp");
      prd.include(rRequest, rResponse);
      }
      }

      accoring to the setContextType ,I have tried "application/x-java-applet" "application/x-java-serialized-object" ,both failed.

      2. portlet.xml file


      <portlet-name>HelloWorldJSPPortlet</portlet-name>
      <portlet-class>org.jboss.portlet.hello.HelloWorldJSPPortlet</portlet-class>

      <mime-type>application/x-java-applet</mime-type>
      <portlet-mode>VIEW</portlet-mode>
      <portlet-mode>EDIT</portlet-mode>
      <portlet-mode>HELP</portlet-mode>

      <portlet-info>
      HelloWorld JSP Portlet
      </portlet-info>

      </portlet-app>


      I have to say, the help.jsp in first file is a jsp which has applet inside.

      When I use ant deploy and ant explode to re-deploy this example portlet and put it under /default/deploy directory, it gave me this error:


      ERROR
      Cause: java.lang.IllegalArgumentException: Content type not accepted
      Message: Content type not accepted
      StackTrace:

      java.lang.IllegalArgumentException: Content type not accepted
      at org.jboss.portal.portlet.impl.jsr168.api.RenderResponseImpl.setContentType(RenderResponseImpl.java:110)
      at org.jboss.portlet.hello.HelloWorldJSPPortlet.doHelp(Unknown Source)
      at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:137)
      at javax.portlet.GenericPortlet.render(GenericPortlet.java:306)
      at org.jboss.portal.portlet.impl.jsr168.PortletContainerImpl.invokeRender(PortletContainerImpl.java:483)
      at org.jboss.portal.portlet.impl.jsr168.PortletContainerImpl.dispatch(PortletContainerImpl.java:405)
      at org.jboss.portal.portlet.container.PortletContainerInvoker$1.invoke(PortletContainerInvoker.java:86)
      at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:131)
      at org.jboss.portal.core.aspects.portlet.TransactionInterceptor.org$jboss$portal$core$aspects$portlet$TransactionInterceptor$invokeNotSupported$aop(TransactionInterceptor.java:86)
      at org.jboss.portal.core.aspects.portlet.TransactionInterceptor$invokeNotSupported_N4547270787964792031.invokeNext(TransactionInterceptor$invokeNotSupported_N4547270787964792031.java)
      at org.jboss.aspects.tx.TxPolicy.invokeInNoTx(TxPolicy.java:66)
      at org.jboss.aspects.tx.TxInterceptor$NotSupported.invoke(TxInterceptor.java:112)
      at org.jboss.portal.core.aspects.portlet.TransactionInterceptor$invokeNotSupported_N4547270787964792031.invokeNext(TransactionInterceptor$invokeNotSupported_N4547270787964792031.java)
      at org.jboss.aspects.tx.TxPolicy.invokeInNoTx(TxPolicy.java:66)
      at org.jboss.aspects.tx.TxInterceptor$NotSupported.invoke(TxInterceptor.java:102)
      at org.jboss.portal.core.aspects.portlet.TransactionInterceptor$invokeNotSupported_N4547270787964792031.invokeNext(TransactionInterceptor$invokeNotSupported_N4547270787964792031.java)
      at org.jboss.portal.core.aspects.portlet.TransactionInterceptor.invokeNotSupported(TransactionInterceptor.java)
      at org.jboss.portal.core.aspects.portlet.TransactionInterceptor.invoke(TransactionInterceptor.java:56)
      at org.jboss.portal.portlet.invocation.PortletInterceptor.invoke(PortletInterceptor.java:38)
      at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
      at org.jboss.portal.core.aspects.portlet.HeaderInterceptor.invoke(HeaderInterceptor.java:50)
      at org.jboss.portal.portlet.invocation.PortletInterceptor.invoke(PortletInterceptor.java:38)
      at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)

      ------ just a piece , from the error, it is not difficult to understand it is the

      context type problem, but how to fix it ,anybody can give me a hand?

      Thanks!
      Hubery