Correção de Bug do Workshop com Weblogic Portal 10.3.0
Se você se deparar com o seguinte problema ao tentar instalar um novo plugin ou update site no workshop:
WebLogic Portal (10.3.0) requires feature “com.m7.nitrox (1.0.20)”, or compatible.
Existe uma maneira de corrigir. Esse já é um bug conhecido e para resolver é só editar o arquivo $BEA_HOME\wlportal_10.3\eclipse\features\com.bea.wlp_10.3.0\feature.xml e comentar as linhas com problema para que o arquivo fique com o seguinte conteúdo:
<requires> <import plugin="org.eclipse.core.runtime" version="3.3" match="compatible"/> <import plugin="org.eclipse.ui" version="3.3" match="compatible"/> <!-- <import feature="com.m7.nitrox" version="1.0.20" match="compatible"/> <import feature="com.bea.workshop.cmdline.feature" version="1.0.30" match="compatible"/> <import feature="com.bea.workshop.common.feature" version="1.1.40" match="compatible"/> <import feature="com.bea.workshop.upgrade81.feature" version="1.0.30" match="compatible"/> <import feature="com.bea.workshop.web.feature" version="1.0.20" match="compatible"/> <import feature="com.bea.workshop.wls.feature" version="1.1.30" match="compatible"/> <import feature="com.bea.workshop.xmlbeans.feature" version="1.0.30" match="compatible"/> --> </requires>
Propagação de dados no Weblogic Portal
Se você precisa sincronizar os dados (como CMS, permissões, …) de um ambiente com Weblogic Portal para o outro (ou enviar uma parte alterada de um ambiente para outro), existe uma ferramenta apropriada para essa tarefa. Essa ferramenta é o Propagation Tool e ela está disponível no Oracle Enterprise Pack. A instalação pode ser encontrada em: http://www.thiagovespa.com.br/blog/2010/08/27/oracle-enterprise-pack-for-eclipse-11g/
Você também pode executar a propagação atráves de tasks Ant: http://download.oracle.com/docs/cd/E15919_01/wlp.1032/e14245/scripts_using.htm#g1065599
Para realizar uma propagação pelo Oracle Enterprise Pack, abra o Eclipse (ou o Workshop) e inicie os domínios que deseja sincronizar. Crie um projeto genérico no eclipse para colocar os dados dos ambientes. O primeiro passo é fazer a importação dos inventories dos ambientes. Vá em File, Import, Weblogic Portal, Propagation Inventory from Server e clique em Next:
Nessa próxima tela, informe os dados do domain de origem, fique atento ao final da URL: “Propagation/inventorymanagement”. Informe também, o usuário e a senha do administrador do portal e clique em Next. Selecione o projeto criado anteriormente, coloque um nome para o inventory e clique em Finish. Aguarde alguns minutos. Faça o mesmo procedimento para o domain de destino, mas com outro nome de arquivo. Você deverá ficar com dois arquivos zip.
Vá em File, New, Other, Weblogic Portal, Propagation Session. Clique em Next, dê um nome e clique em Next novamente. Escolha o inventory de origem, pressione Next. Escolha o de destino e pressione Next. Na próxima tela, é necessário escolher se você vai aceitar adições, remoções e/ou atualizações. Escolha e pressione Next. Agora você pode escolher o quer propagar, no meu caso eu vou propagar somente uma parte de um repositório de conteúdo e os seletores. Escolha o que deseja e pressione Next.
Selecione a política de substituição e pressione Finish. O Eclipse irá sugerir para abrir uma nova perspectiva. Lá você poderá verificar as diferenças e marcar o que vai do repositório de origem para o de destino. Além de verificar os impactos da propagação.
Após configurado, vá em em File, Export, Weblogic Portal, Propagation Session to Inventory, Next. Escolha a Session criada anteriormente e clique em Next. Dẽ um nome para o merge de inventories e clique em Finish. Vá em File, Export, Weblogic Portal, Propagation Inventory to Server e clique em Next. Selecione o arquivo de merge criado no passo anterior e clique em Next. Informe os dados do domain de destino e clique em Finish. Ao término do envio para o server, você deverá ter a seguinte tela:
Pressione OK. Os dados devem estar no domain de destino. Se houverem usuários executando o portal, é interessante colocar em modo de manutenção para que nenhuma personalização seja feita, ou ela poderá ser perdida. Outra dica é separar vários arquivos de merge, cada um com um recurso específico para ficar mais fácil de descobrir possíveis problemas.
Recuperar senha do Weblogic
Tive um problema com a senha do Weblogic e resolvi criar soluções para resetar a senha. O inconveniente é que não recuperamos a senha e sim apagamos e criamos ela novamente. E se quisermos recuperar? Primeiro vamos à solução de apagar a senha, após isso veremos como recuperar a senha sem a necessidade de apagá-la – ideal e menos trabalhoso.
Existem vários “how-to” na internet para resetar a senha do Weblogic, mas para facilitar criei um bash script.
Esse script só funciona para servers que utilizem o DefaultAuthenticator.
Segue abaixo o código dele:
# Author: Thiago Galbiatti Vespa
# 09/17/2010
## Please configure this variables
WL_HOME="/home/thiago/Oracle/Middleware/wlserver_10.3/server/bin"
DOMAIN_HOME="/home/thiago/Oracle/Middleware/user_projects/domains/sample_domain"
ADMIN_SERVER_NAME="AdminServer"
BACKUP_HOME="/home/thiago/domainBckp"
### End
NEW_USERNAME="$1"
NEW_PASSWORD="$2"
if [ -z $1 ] ; then
echo "Please inform the new username!";
exit 1;
fi
if [ -z $2 ] ; then
echo "Please inform the new password!";
exit 1;
fi
NOW=`date +%y%m%d%H%m`
# Backup the domain
tar cvzf ${BACKUP_HOME}/${ADMIN_SERVER_NAME}-${NOW}.tar.gz ${DOMAIN_HOME}
# Weblogic enviroment
. ${WL_HOME}/setWLSEnv.sh
# New DefaultAuthenticatorInit.ldift
java weblogic.security.utils.AdminAccount ${NEW_USERNAME} ${NEW_PASSWORD} .
# Move DefaultAuthenticatorInit.ldift to security dir
mv DefaultAuthenticatorInit.ldift ${DOMAIN_HOME}/security/DefaultAuthenticatorInit.ldift
# Replace the old boot.properties
echo "username=$1" > ${DOMAIN_HOME}/servers/${ADMIN_SERVER_NAME}/security/boot.properties
echo "password=$2" >> ${DOMAIN_HOME}/servers/${ADMIN_SERVER_NAME}/security/boot.properties
# This folder will be recreated
rm -rf ${DOMAIN_HOME}/servers/${ADMIN_SERVER_NAME}/data/ldap/
Para o Weblogic Portal que utiliza o SQLAutenticator como padrão, basta alterar na tabela de usuários e grupos, utilizando o código abaixo.
INSERT INTO GROUPMEMBERS (G_NAME, G_MEMBER) VALUES ('Administrators', 'portaladmin');
INSERT INTO GROUPMEMBERS (G_NAME, G_MEMBER) VALUES ('PortalSystemAdministrators', 'portaladmin');
Achei também alguns códigos que prometem recuperar a senha do Weblogic, o problema é que ele só funciona com 3DES e não com AES. Que é a criptografia que está sendo utilizada pelo meu Weblogic 10.3.2.
Funçando um pouco nas classes do Weblogic achei algumas responsáveis pela criptografia. Deu um bom trabalho para descobrir como o Weblogic fazia, pois envolve criptografia AES e classes internas do Weblogic, mas foi a melhor pro meu caso e agora é bem simples de se executar. Basta passar o serviço de criptografia do Weblogic e mandar descriptografar
.
ClearOrEncryptedService ces= new ClearOrEncryptedService(es);
System.out.println(ces.decrypt(pass));
Pronto! Estou disponibilizando também essa classe pra quem só quiser executar. O comando para executar é o seguinte:
por exemplo:
E o dado descriptografado irá aparecer no console! Funciona em Windows também
.
Portlets de Colaboração para Weblogic Portal 10.3.2
Olá Pessoal, utilizei uma tecnologia muito bacana num projeto para uma empresa que usa Weblogic Portal 10.3.2 e gostaria de contibuir com vocês informações sobre os portlets de colaboração disponíveis nessa ferramenta. Esses portlets faziam parte de um projeto chamado GroupSpace. O GroupSpace é um template de comunidade do Weblogic Portal, para facilitar a criação de comunidades. O template de community do GroupSpace não é mais disponível no Weblogic Portal 10.3.2, mas está presente no 10.3. Entretanto, na versão 10.3.2 podemos utilizar os portles de colaboração disponíveis e criar nossos próprios templates de comunidades e portais.
Configuração do domain
Para habilitar o groupspace no portal é necessário estender (ou criar um novo domain) com a opção de Weblogic Portal Collaboration Repository e configurar o datasource requerido ao estender o domain.
Realizar os seguintes procedimentos:
- Abrir o Configuration Wizard e selecionar “Create” para um novo domínio ou “Extend” para um domínio existente e clicar em Next.
- Selecionar o domínio e habilitar o checkbox do Weblogic Portal Collaboration Repository.
- Configurar os datasources corretamente.
- Completar o wizard e iniciar o servidor.
Criação de role (opcional se as roles já existirem)
Os usuários dos portlets de colaboração precisam estar autenticado e com um perfil associado para utilizar o repositorio que os portles utilizam
Realizar os seguintes procedimentos:
- Acessar o Weblogic Portal Administration Console.
- Selecionar “Users, Groups, & Roles”, depois “Visitor Entitlement”, depois “Browse Roles”.
- Clicar em “Update”. No “Update Role Scope” selecionar “Enterprise Application Scope” e clicar “Update”.
- Selecionar “Visitor Roles”, “Browse Roles”, “Create New Role”. Escrever o nome de uma role e clicar no botão Create.
Criação da pasta do repositório
Realizar os seguintes procedimentos:
- Acessar o Weblogic Portal Administration Console.
- Selecionar “Content”, “Content Management”. No “Repository View”, selecionar um repositório (ou criar um).
- Clicar em “Add Folder” e adicionar uma pasta para os dados que serão armazenados dos portlets de colaboração.
Associar a role para o repositório e ao usuário
Apenas os usuários com permissão podem utilizar os portlets de colaboração
- Selecionar a pasta criada.
- Selecionar “Entitlements”.
- Clicar em “Add Role” e adicionar a role criada anteriormente que será utilizada para acessar os portlets de colaboração.
- Dar as devidas permissões: Create, View, Update e Delete.
- Associar os usuários a essa role.
Configurar os portlets
- Acessar o Weblogic Portal Administration Console.
- Selecionar “Portal Management”.
- Espandir “Portal Resources”, “Library”, “Portlets”.
- Para os portlets AddressBook?, Calendar, Discussion, Mail e Tasks faça o seguinte:
- Selecione o portlet.
- Vá em “Preferences”.
- Edite o collaboration.personal_repository.path e atribua o valor da pasta do repositório.
- Edite o collaboration.personal_repository.name e atribua o nome do repositório.
Configuração da aplicação
Para habilitar uma aplicação portal, é necessário selecionar os facets do Collaboration (e suas dependências) na aplicação (Tanto EAR, quanto módulo web associado), caso seja versão 10.3.0 ou anterior, pode-se ainda habilitar os facets do Groupspace para utilizar os templates de comunidade.
Realizar os seguintes procedimentos tanto no projeto EAR, quanto no projeto Web associado:
- No Navigator, clicar com o botão direito no projeto EAR e escolher Properties.
- No Properties, selecionar Project Facets, e selecionar Weblogic Portal Collaboration e suas dependências
- Selecionar OK
Inclusão em uma aplicação existente
Após configurar os facets, os portles de colaboração já estarão disponíveis para inclusão em arquivos .portal ou .community. Os portlets de colaboração são:
- AddressBook: lista de endereços e contatos (nome, telefone, endereço, e-mails, …).
- Calendar: calendário de eventos. Permite criar agendamentos.
- Discussion: fórum de discussão.
- Mail: gerenciamento e leitor de e-mail (IMAP e POP).
- Tasks: gerenciamento de tarefas e todo.
Basta adicioná-los em uma page e utilizar.
Correção de bugs
Há um bug (weblogic 10.3.2) na execução desses portlets no idioma pt_BR. Uma das propriedades foi traduzida incorretamente deixando inválido um javascript utilizado pelo editor de texto. Dessa forma em todos os portlets o editor não salva, ou seja, nenhum funciona em browsers configurados com o idioma pt_BR.
Eu criei uma correção. Basta criar as pastas WEB-INF/classes/portlets/collaboration e colocar o arquivo wlp-common-resources_pt_BR.properties corrigido dentro dessa pasta.












