sexta-feira, 12 de agosto de 2011

Criando um site no WCM com JSP

O WCM (1) define e (2) acessa uma estrutura lógica hierárquica expressa da seguinte forma:




O Repositório é um cenário em um momento, onde existem usuários com sessões estabelecidas e transações ativas. Usaremos o termo transação apesar de não ser muito apropriado para Gerenciamento de Conteúdo. Cada transação estabelece uma Workspace usando um usuário e senha, e várias podem ser estabelecidas por usuário (pelo menos ao nível da API).

O Site

O site não está em uma Workspace; ele reside em uma Biblioteca das várias que podem existir de Documentos (Document Library) mas é manipulado  em uma Workspace. Em outras palavras, a Workspace é uma situação ativa que modifica uma Biblioteca de Documentos do WCM. Portanto, a figura anterior é um "retrato" de algo acontecendo no WCM.

Criando uma área de site no WCM com JSP

Existem algumas bibliotecas necessárias para que um site seja criado em uma Biblioteca:


<%@page import="java.util.*,
java.security.*,
java.io.*,
java.net.*,
java.text.*,
javax.servlet.http.*"%>
<%@page import="com.ibm.workplace.wcm.api.*,
com.ibm.workplace.wcm.api.exceptions.*"%>

As primeiras são do "mínimo de java" para manipular servlets. O segundo grupo são também "o mínimo de bibliotecas" WCM utilizadas para criar o site.

Coletando dados do usuário

// Usuário autenticado
String sNome = session.getAttribute("Nome").toString();
String sSenha = session.getAttribute("Senha").toString(); 

Estas são variáveis de sessão, à semelhança do ASP, espécie de cookies, com o usuário e a senha, para que o WCM saiba que quem entrou está autorizado a criar Workspaces.

Coletando dados do site


// Parâmetros para o novo site
String sNomeSite = request.getParameter("NomeSite");
String sTituloSite = request.getParameter("TituloSite");
String sDescricaoSite = request.getParameter("DescricaoSite");
String Biblioteca = request.getParameter("Bib");

Um site deve ter um nome, um título, uma descrição, e pertencer a uma Biblioteca. O site é de uma Biblioteca e não do Workspace.

Configurando um Workspace

// Configura workspace
Workspace ws = WCM_API.getRepository().getWorkspace(sNome,sSenha);
Workspace workspace = ws;

Confirmamos, com os comandos acima, o que dissemos sobre Workspace: Ela é um espaço intermediário para poder manipular os documentos das bibliotecas. É uma transação no sentido meio torto do termo.

Entrando no nível das Bibliotecas


// Acessa a Biblioteca de documentos
DocumentLibrary dl = ws.getDocumentLibrary(Biblioteca);
ws.setCurrentDocumentLibrary(dl);


Os documentos da Biblioteca apontada nos parâmetros para o novo site são referenciados por um ponteiro (dl).

Configurando as propriedades do objeto para criação do site


// Cria o SCHEMA do site
Site siteCriado = ws.createSite();
siteCriado.setName(sNomeSite);
siteCriado.setTitle(sTituloSite);
siteCriado.setDescription(sDescricaoSite);

Como tudo no WCM funciona a base de manipulação de objetos através da sua API, basta alimentar os parâmetros para o método createSite desta mesma API.

Concluindo a transação


// Grava o SCHEMA no WCM
String[] saveErrors = ws.save(siteCriado);
// Dá o logoff
ws.logout();



sexta-feira, 5 de agosto de 2011

Servlets JSP

Onde colocar

Os servlets escritos em JSP devem ser colocados na árvore de diretórios do Websphere em:


c:\ibm\wp_profile\installedApps\node\wcm.ear\ilwwcm.war\jsp\html\

onde node é o nome da aplicação criada para ser a base de diretórios da instalação do WCM. Qualquer dúvida, procure com o buscador de arquivos do seu servidor o nome "wcm.ear".

Criando o componente JSP