Tutorial

Testar EJB usando o UTC (Universal Test Client)

Posted in Tutorial on September 3rd, 2010 by Fábio Queiroz – Be the first to comment

Uma das maneiras mais simples e rápidas de testar um EJB é através da utilização do recurso chamado Universal Test Client (UTC), presente no Rational Application Developer (RAD).

O passo a passo a seguir mostrará o teste feito para um EJB responsável por enviar e-mail.

Na visão “Servers”, clique 2x no nome do servidor para que seja exibida a tela com suas configurações. Verifique se a opção “Enable universal test client”.

Para iniciar o Universal Test Client, clique com o botão direito do mouse no servidor, seleciona a opção “Universal Test Client à Run”.

Uma nova janela do navegador interno do RAD será carregada com o Test Client.

Clique no link “JNDI Explorer” e navegue até encontrar o EJB que fará o teste.

Clique no EJB.

Na seção “EJB Beans”, clique em “EmailSessionFacade create()”. No lado direito, clique no botão “Invoke” e, posteriormente, no botão “Work with Object”.

Sa seção “EJB Beans”, clique em “void enviarEmail(EmailVO)”, preencha os campos apresentados e clique no botão “Invoke”.

nomeRemetente: Fabio Queiroz

remetente: contato@faque.com

destinatario: fabioqb@gmail.com

tituloMensagem: Teste EJB

corpoMensagem: Mensagem apenas para testar o EJB

Logo após clicar no botão “Invoke”, o resultado será apresentado abaixo do botão.

Alterar estrutura LDAP usada pelo Portal: problemas e SOLUÇÕES

Posted in Tutorial on May 14th, 2010 by Fábio Queiroz – Be the first to comment

Uma dos principais benefícios de usar produtos construídos para serem executados em multi plataformas e suportar produtos de diferentes fornecedores é que um dia você REALMENTE utilize este BENEFÍCIO.

Em meus 10 anos trabalhando com TI sempre participei de construção de soluções que permitissem que componentes fossem pensados e construídos para permitir um (des)acoplamento. Há vários anos venho trabalhando com produtos IBM tendo o WebSphere Portal como o principal foco.

Recentemente, um cliente veio com a pergunta: qual o esforço necessário para migrar as configurações do nosso Portal que utiliza um produto LDAP do fornecedor A para um produto LDAP do fornecedor B?

Até então você pode pensar: o esforço é minimo, já que o Portal reconheceria a estrutura LDAP perfeitamente. E se eu agora der mais detalhes dizendo que o LDAP A é o MS-AD e o LDAP B é o Novell e-Directory? Bom, ai as coisas mudam um pouco de figura, já que a estrutura LDAP dos 2 produtos são diferentes. E se eu colocar uma pimentinha dizendo que a estrutura de usuários e grupos que será criada no Novell e-Directory será diferente da atual estrutura no MS-AD?

Neste cenário, seremos obrigados a executar algumas configurações para adequar a estrutura de permissionamento e segurança no WCM, nas páginas e portlets e regras de personalização.

Vejam o que acontecem com testes itens quando o LDAP com a estrutura nova é adicionada e o LDAP com a estrutura velha é removido.

Ocorrência no WCM

Todas as referências aos usuários e grupos foram apresentadas com o DN (Distinguished Name) dos componentes sendo apresentados em sua forma completa. Isso indica que a referência não foi encontrada.

O arquivo <wp_profile>\PortalServer\wcm\shared\app\config\wcmservices\MemberFixerModule.properties foi alterado para adicionar os mapeamentos de à para. Foram adicionadas as linhas:

cn=grupo01,cn=users,dc=novell,dc=corp -> cn=grupo01,ou=grupos,ou=empresa,o=poc

cn=grupo06,cn=users,dc=novell,dc=corp -> cn=grupo01,ou=grupos,ou=empresao=poc

Esta ação mapeia os grupos com DN inválidos para os grupos com DN válidos.

Após este mapeamento, foi executado o comando (URL) do MemberFixer para avaliar o que seria identificado e como seria corrigido. O comando do MemberFixer

http://portal.empresa.corp:10040/wps/wcm/connect?MOD=MemberFixer&library=Web%20Content&norealm_dn=true&mismatched=update&alt_dn=update&invalid_dn=update

Este comando varre a biblioteca indicada e informa no arquivo SystemOut o que pode ser corrigido. Algo como:

Varrendo o nome do Objeto: ldif, 0d78178042430f259fecdf5b51d42682 Tipo de objeto: com.aptrix.pluto.cmpnt.FileResourceCmpnt.

Renomeando o Membro CN=grupo01,CN=Users,DC=novell,DC=corp para cn=grupo01,ou=grupos,ou=empresa,o=poc.

Após uma validação do MemberFixer, reexecutamos o comando adicionando o parâmetro “fix=true” para que as alterações sejam efetivadas.

http://portal.empresa.corp:10040/wps/wcm/connect?MOD=MemberFixer&library=Web%20Content&norealm_dn=true&mismatched=update&alt_dn=update&invalid_dn=update&fix=true

Eventualmente, usuários não mapeados do arquivo MemberFixerModule serão renomeados para o usuário administrador do Portal e grupos não mapeados do arquivo MemberFixerModule serão renomeados para o grupo referente ao administrador do WCM.

Ocorrência com Páginas, Etiquetas e URLs

Todas as referências aos usuários e grupos foram apresentadas como “fantasmas”, ou seja, ficaram registrados no permissionamento fisicamente mas não foram exibidos corretamente.

Para solucionar esta questão, a página “raiz” (principal) foi exportada com geração do arquivo XML “pageExport.xml”. A imagem abaixo ilustra um trecho de código referente à página chamada “Página 1” onde podem ser vistos os mapeamentos para usuários e grupos com DN “…dc=novell,dc=corp”.

O conteúdo deste arquivo foi editado e as referências aos usuários e grupos não mais existentes foram alteradas.

Posteriormente, o arquivo “pageExport.xml” foi novamente importado, fazendo com que as referências incorretas fossem mantidas e as referências corretas fossem adicionadas.

Para remover as referências inválidas após correção, o script xmlaccess foi executado utilizando o modelo “CleanupUser.xml” (configurações padrão).

Após a finalização do script, todas as referências inválidas foram removidas.

Conclusão

Tanto para os problemas apresentados no WCM quanto para os demais recursos do Portal, as soluções apresentadas aqui são viáveis e simples, sendo necessário apenas tempo para os mapeamentos de -> para dos novos DNs.