Notas sobre o Release de Ferramentas de Portal e de Portlet

© Copyright International Business Machines Corporation 2006. Todos direitos reservados. Direitos Restritos para Usuários do Governo dos Estados Unidos - Uso, duplicação e divulgação restritos pelo documento GSA ADP Schedule Contract com a IBM® Corporation.

Notas sobre o Release

1.0 Limitações
   1.1 Mensagens de Aviso de Link Interrompido São Mostradas na Visualização Problemas
   1.2 Suporte a Marcações no Portal Designer
   1.3 A Paleta de Cores Padrão Não É Usada Corretamente
2.0 Problemas Conhecidos e Soluções Alternativas
   2.1 Sincronização Manual Necessária para Tempo de Execução de Destino e Versão do Servidor de Portal do assistente Novo Projeto do Portal
   2.2 Editando os Arquivos JSP do Tipo de Conteúdo CSS no Diálogo Estilos
   2.3 O Código do Cliente de Serviços Gerado para JSF não Funciona em Portlets Faces do JSR 168
   2.4 Mensagem 'Arquivos Inconsistentes' ao Importar um Projeto de Portal
   2.5 Não é Possível Executar um Portlet JSR 168 que Não Tenha um ID de Aplicativo de Portlet ou Não é Possível Executar um Projeto de Portal que Contenha Tal Portlet.
   2.6 O Estado do Servidor WebSphere Portal 6.0 é Detectado como Parado Mesmo se o Servidor Estiver em Execução
   2.7 Os Portlets Não São Exibidos em Páginas Após Executar ou Implementar o Projeto my portal no Portal 6.0
   2.8 Ao Criar uma Mensagem de Processo de Negócios com um WSDL no Estilo Document-Literal, os Nomes de Mensagens Não São Mostrados no Assistente.
   2.9 O Parâmetro de Ação Padrão do Assistente Cooperativo Pode Estar Incorreto se o Projeto de Portlet JSR 168 Contiver Portlets de Tipos Diferentes.
   2.10 O Contêiner da Página de Tarefa Não Funciona Quando o Valor Padrão do Nome Exclusivo é Alterado
   2.11 Alguns Projetos do Portal Migrados do Rational Developer 6.x Podem Causar NoModuleFileException Durante a Implementação
   2.12 Configurando o Modo do Carregador de Classe PARENT_LAST para Portlets Faces
   2.13 "Executar no Ambiente de Teste do WebSphere Portal v5.1" Pode Falhar com Projetos de Portal Criados Utilizando o Rational Developer 6.x
   2.14 Amostras de Portal e Portlet na Galeria de Amostras e no Assistente Importar Portal São Filtradas por Recursos

1.0 Limitações

1.1Mensagens de Aviso de Link Interrompido São Mostradas na Visualização Problemas

Ao importar uma amostra de projeto do Portal ou criar um projeto de portal utilizando o assistente "Novo Projeto de Portal" a partir da Galeria de amostras, uma mensagem de aviso de link interrompido aparece na visualização Problemas.

1.2 Suporte a Marcações no Portal Designer

Nesta versão do Rational® Developer, o Portal Designer suporta apenas exibições em HTML, cHTML e WML.  Se você especificou outras linguagens de marcações suportadas para uma página ou rótulo em um projeto importado, essas linguagens de marcações são suportadas para exibição pelo Rational Developer, mas não poderão ser editadas. Essas linguagens de marcações não serão exibidas na visualização Propriedades.

1.3 A Paleta de Cores Padrão Não É Usada Corretamente

A não ser que você designe uma paleta de cores para uma página, a paleta de cores padrão será utilizada no WebSphere® Portal 6. Entretanto, no Portal Designer, quando a paleta de cores não é especificada, a paleta de cores da página ascendente será utilizada no lugar da paleta padrão.

2.0 Problemas Conhecidos e Soluções Alternativas

2.1 Sincronização Manual Necessária para Tempo de Execução de Destino e Versão do Servidor de Portal do assistente Novo Projeto do Portal

No assistente Novo Projeto do Portal, selecionar uma versão do servidor de portal não atualiza automaticamente o tempo de execução de destino.  A versão do servidor de portal e as configurações do tempo de execução de destino deverão ser sincronizadas manualmente.  Por exemplo, você deve selecionar o tempo de execução do WebSphere Portal v6.0 para uma versão do servidor de portal igual a 6.0.0.x e deve selecionar o tempo de execução do WebSphere Portal v5.1 para  uma versão do servidor de portal igual a 5.1.0.x. Se a versão do tempo de execução de destino não estiver sincronizada com a versão do portal, o servidor de portal poderá ficar distorcido ou inutilizável quando o projeto de portal for implementado.

2.2 Editando os Arquivos JSP do Tipo de Conteúdo CSS no Diálogo Estilos

No WebSphere Portal v6.0, ao editar os arquivos JSP de tipo de conteúdo do CSS, como styles.jsp ou styles_theme.jspf,  com um diálogo Estilos, as expressões do JSP poderão ser exibidas no diálogo.  Essas expressões do JSP não podem ser modificadas no diálogo. Você deve modificá-las no painel de origem do CSS Designer.

2.3 O Código do Cliente de Serviços Gerado para JSF não Funciona em Portlets Faces do JSR 168

Para um portlet Faces do JSR168, se você utilizar qualquer uma das ferramentas a seguir, para gerar um cliente de serviço em uma JSP Faces, o código da página gerado não funcionará corretamente no WebSphere Portal 6.0 ou 5.1. As ferramentas afetadas incluem:

Isso é causado pela nova implementação do tempo de execução do portlet Faces do JSR168 contido em jsf-portletbridge.jar, que é diferente do que anteriormente.

Na nova implementação, os beans de código de página para JSPs Faces, quando declarados como beans gerenciados pelo escopo do pedido, não persistem entre a fase de Ação e a fase de Renderização do portlet. No código de cliente de serviços da Web gerado, o bean de código de página está sendo utilizado para armazenar em cache o resultado do serviço da Web durante a fase de Ação. Mas como ele está no escopo do pedido, uma nova instância será criada durante a fase de Renderização. Portanto, o resultado armazenado em cache será perdido.

Há duas soluções possíveis:

  1. Coloque o bean no escopo da sessão (isso é configurado em faces-config.xml). Isso é tão simples como alterar uma linha no arquivo de configuração.
  2. Esta não é tão simples como a primeira, mas é a forma preferida de implementação de cliente de serviços em portlets JSR168. Ela segue as melhores práticas da programação de portlets JSR168 e permite um suporte muito melhor ao botão Voltar e a marcadores.
PortletResponse response = (PortletResponse)getFacesContext().getExternalContext().getResponse();
((ActionResponse)response).setRenderParameter("resultValue", resultValue);
PortletRequest request = (PortletRequest)getFacesContext().getExternalContext().getRequest();
request.getPortletSession().put("resultValue", resultValue);
PortletResponse response = (PortletResponse)getFacesContext().getExternalContext().getResponse();
((ActionResponse)response).setRenderParameter("inputValue", inputValue);
PortletRequest request = (PortletRequest)getFacesContext().getExternalContext().getRequest();
String inputValue = request.getParameter("inputValue");

2.4 Mensagem 'Arquivos Inconsistentes' ao Importar um Projeto de Portal

Ao importar um projeto de portal, é possível obter uma caixa de mensagem de pergunta: "Os arquivos do espaço de trabalho a seguir estão inconsistentes com o editor. Atualize o editor com o conteúdo do espaço de trabalho". Clique em Sim.  

2.5 Não é Possível Executar um Portlet JSR 168 que Não Tenha um ID de Aplicativo de Portlet ou Não é Possível Executar um Projeto de Portal que Contenha Tal Portlet.

O ID do aplicativo do portlet é opcional de acordo com a especificação JSR 168, mas o Rational® Developer não publica corretamente portlets sem IDs. O Rational Developer não gera portlets sem esses IDs. É possível que um portlet seja criado se você importar um portlet de outra origem. Para obter uma solução alternativa para esse problema, abra o descritor de implementação do portlet para o projeto e inclua um ID de aplicativo de portlet na guia de origem. Por exemplo:
<portlet-app xmlns=... version=... xmlns:xsi=... xsi:schemaLocation=... id="ENTER_YOUR_ID_HERE">
...
</portlet-app>

2.6 O Estado do Servidor WebSphere Portal 6.0 é Detectado como Parado Mesmo se o Servidor Estiver em Execução

Se o estado do servidor for detectado como Parado quando o servidor estiver em execução, primeiramente assegure-se de que as portas do conector SOAP/RMI estejam corretas e que as credenciais de segurança do WebSphere utilizadas estão corretas no editor do servidor. Se não estiverem corretas, o estado do servidor nunca será detectado como Iniciado. Se estiverem corretas e o estado do servidor permanecer Parado, poderá haver um problema com a coexistência do WebSphere Application Server v6.1 e do WebSphere Portal v6.0.

O cenário mais comum é ter o servidor do WebSphere Application Server 6.1 instalado na máquina local e iniciar com um novo espaço de trabalho. Nesse novo espaço de trabalho, uma instância do servidor WebSphere Application Server 6.1 será criada e inicializada automaticamente, o que impedirá que a detecção de estado do Portal 6.0 funcione corretamente. Também pode ocorrer se você acabou de criar um servidor do WebSphere Application Server v6.1 e, em seguida, criar um servidor do Portal 6.0.

A solução é reiniciar o produto Rational com o mesmo espaço de trabalho. A instância do servidor do Portal 6.0 deverá então funcionar corretamente, desde que o servidor do WebSphere Application Server 6.1 não esteja inicializado, isto é, seu estado permanece em branco em vez de Parado ou Iniciado.

2.7 Os Portlets Não São Exibidos em Páginas Após Executar ou Implementar o Projeto my portal no Portal 6.0

Os portlets não são exibidos em páginas após executar ou implementar o projeto my portal no Portal 6.0. Para minimizar o efeito desse problema, utilize a configuração de apenas implementação sempre que uma implementação completa não for necessária.

Se você encontrar o problema, tente executar uma implementação de apenas configuração do projeto do portal sem implementar nenhum portlet. Isso normalmente permite que o portal renderize os portlets de maneira correta novamente.

2.8 Ao Criar uma Mensagem de Processo de Negócios com um WSDL no Estilo Document-Literal, os Nomes de Mensagens Não São Mostrados no Assistente.

Se você estiver criando uma nova Mensagem de Processo de Negócios e o arquivo WSDL estiver no estilo Document-Literal, os nomes de mensagens de entrada e saída poderão não ser exibidos na segunda página do assistente. Ainda é possível selecioná-los e visualizar os detalhes da mensagem no lado direito do assistente. O código gerado estará correto, apesar do fato de que os nomes das mensagens não são mostrados no assistente. 

2.9 O Parâmetro de Ação Padrão do Assistente Cooperativo Pode Estar Incorreto se o Projeto de Portlet JSR 168 Contiver Portlets de Tipos Diferentes.

Se você estiver utilizando o assistente cooperativo para criar portlets de origem ou destino e o projeto de portlet JSR 168 contiver vários tipos de portlet, como um portlet básico e um portlet do Struts, o parâmetro de ação padrão no assistente poderá estar incorreto.

Em portlets básicos e de aspectos, o parâmetro de ação padrão deve ser ACTION_NAME_PARAM, mas o usuário pode selecionar um valor diferente.
No Struts, o parâmetro da ação deve ser spf_strutsAction.

2.10 O Contêiner da Página de Tarefa Não Funciona Quando o Valor Padrão do Nome Exclusivo é Alterado

Estes são os valores padrão para o nome exclusivo nos contêineres da página de tarefa: 
 WebSphere Portal v6.0:   ibm.portal.MyTasks
 WebSphere Portal v5.1:   wps.MyTasks

No Portal Designer, ao utilizar outra página com um nome exclusivo diferente dos listados acima,  a página não será reconhecida como uma página de contêiner da página de tarefa no WebSphere Portal após a implementação. 

Solução alternativa:  Após a implementação,  altere o valor do parâmetro TaskPageContainerUniqueName no portlet My Tasks utilizando estas etapas:
 1.  Abra Administração > Gerenciamento de Portlets > Portlets
 2.  Para o portlet My Tasks,  clique no botão Configurar portlet
 3.  Para o parâmetro TaskPageContainerUniqueName, clique em Editar.
 4.  Altere o valor para o novo nome exclusivo no Portal Designer utilizando estes valores:

  WebSphere Portal v6.0:   ibm.portal.MyTasks
  WebSphere Portal v5.1:   wps.MyTasks
 5.  Clique em OK. 

2.11 Alguns Projetos do Portal Migrados do Rational Developer 6.x Podem Causar NoModuleFileException Durante a Implementação

Se um projeto do portal foi migrado do Rational Developer 6.x  para o espaço de trabalho do Rational Developer 7.0, isso poderá causar falha de implementação com uma NoModuleFileException.  Quando isso ocorrer, siga o procedimento a seguir para corrigir o problema.

      <module id="WebModule_1163447032109">
          <web>
              <web-uri>wps.war</web-uri>
              <context-root>wps</context-root>
          </web>
      </module>
      <module id="WebModule_WSRP">
         <web>
            <web-uri>wps_facade.war</web-uri>
            <context-root>/wsrp</context-root>
         </web>
      </module>
      <module id="EjbModule_1">
          <ejb>wp.scheduler.ejb.jar</ejb>
      </module>
      <security-role id="SecurityRole_1">
         <description>Todos na corporação.</description>
         <role-name>Everyone Role</role-name>
      </security-role>
      <security-role id="SecurityRole_2">
         <description>Todos os usuários autenticados na corporação.</description>
         <role-name>All Role</role-name>
      </security-role>
      <security-role id="SecurityRole_3">
         <description>Nenhum usuário na corporação.</description>
         <role-name>No Role</role-name>
      </security-role>

2.12 Configurando o Modo do Carregador de Classe PARENT_LAST para Portlets Faces

Devido a uma versão desatualizada do jsf-ibm.jar que foi enviado no WebSphere Portal 6.0, alguns componentes do JSF não são renderizados corretamente em portlets se o modo do carregador de classe estiver configurado com o PARENT_FIRST no módulo da Web do portlet.  Isso ocorre porque quando o modo do carregador de classe está configurado como PARENT_FIRST, o jsf-ibm.jar no WebSphere Portal 6.0 será utilizado, no lugar da cópia contida no módulo da Web do portlet.

Apenas os componentes no jsf-ibm.jar, que correspondem ao uri http://www.ibm.com/jsf/html_extended, são afetados.  Os portlets Faces IBM e Faces JSR168 são afetados.

O modo do carregador de classe do módulo da Web do portlet será configurado como PARENT_FIRST nas seguintes situações, portanto precisaria ser alterado:

Para obter uma solução alternativa para esse problema, abra o arquivo application.xml no projeto EAR que contém o projeto de portlet e abra a guia "Deployment".  Na seção "Application", localize a árvore que exibe o EAR e o projeto de portlet.  Selecione o projeto de portlet e altere "Classloader mode" de "PARENT_FIRST" para "PARENT_LAST".  Você pode desejar publicar novamente o aplicativo para que a alteração entre em efeito no servidor de destino.
Se o portlet for instalado diretamente no WebSphere Portal utilizando o WAR, na página de administração do WebSphere Portal ou utilizando o comando xmlAccess, o modo do carregador de classe já está configurado como PARENT_LAST.  Nesse caso, o portlet funcionará corretamente sem nenhuma solução alternativa.

2.13 "Executar no Ambiente de Teste do WebSphere Portal v5.1" Pode Falhar com Projetos de Portal Criados Utilizando o Rational Developer 6.x

Quando um projeto de portal 5.1.0.1 criado utilizando o Rational Developer 6.x for importado com o Project Interchange em um espaço de trabalho do Rational Developer 7.0, "Executar no Ambiente de Teste do WebSphere Portal v5.1" poderá falhar.

Solução alternativa: Modifique o conteúdo do arquivo .portalsettings utilizando estas etapas:
 1. Abra Janela > Abrir Perspectiva > Outra...
 2. Selecione Recurso e clique em OK no diálogo Abrir Perspectiva.
 3. Expanda o projeto de portal na visualização Navegador.
 4. Selecione o arquivo .portalsettings e abra com o Editor de Texto.
 5. Insira o seguinte.
    <?xml version="1.0" encoding="UTF-8"?>
    <portalSettings>
         <portal-version version="5.1.0.1"/>
         <portlets-ear-project portlets-ear-project-name=""/>
         <process-integration mytaskspage-uniquename="wps.MyTasks"/>
     </portalSettings>

2.14 Amostras de Portal e Portlet na Galeria de Amostras e no Assistente Importar Portal São Filtradas por Recursos

O recurso "Desenvolvedor da Web (avançado) precisa estar ativado para visualizar o assistente Importar Portal e as amostra de portal e portlet (na Galeria de Amostras).  Para ativar o recurso, vá para Ajuda > Bem-vindo; em Bem-vindo, clique no botão "Ativar Funções", que está localizado no canto da tela.  Em seguida, selecione a função "Desenvolvedor da Web (avançado)" para ativá-la.  Reinicie o assistente ou a Galeria de Amostras para que as alterações entrem em efeito.