Desenvolvendo Aplicativos que Utilizam Áreas de Trabalho
Os aplicativos interagem com o serviço de área de trabalho implementando a interface UserWorkArea. Esta interface define todos os métodos usados para criar, manipular e finalizar áreas de trabalho.
Sobre Esta Tarefa
package com.ibm.websphere.workarea;
public interface UserWorkArea {
void begin(String name);
void complete() throws NoWorkArea, NotOriginator;
String getName();
String[] retrieveAllKeys();
void set(String key, java.io.Serializable value)
throws NoWorkArea, NotOriginator, PropertyReadOnly;
void set(String key, java.io.Serializable value, PropertyModeType mode)
throws NoWorkArea, NotOriginator, PropertyReadOnly;
java.io.Serializable get(String key);
PropertyModeType getMode(String key);
void remove(String key)
throws NoWorkArea, NotOriginator, PropertyFixed;
}
- NoWorkArea
- Emitida quando um pedido requer uma área de trabalho associada, mas nenhuma está presente.
- NotOriginator
- Emitida quando um pedido tenta manipular o conteúdo de uma área de trabalho importada.
- PropertyReadOnly
- Emitida quando um pedido tenta modificar uma propriedade somente leitura ou somente leitura fixa.
- PropertyFixed
- Emitida pelo método de remoção quando a propriedade designada possui um dos modos fixos.
Procedimento
Exemplo
Tipos de Objetos da Área de Trabalho. No exemplo a seguir, o cliente cria uma área de trabalho e insere nela duas propriedades: um identificador de site e uma prioridade. O identificador de site é definido como uma propriedade somente leitura; o cliente não permite que os destinatários da área de trabalho substituam o identificador de site. Essa propriedade consiste na chave company e uma instância estática de um objeto SimpleSampleCompany. A propriedade da prioridade consiste na prioridade principal e em uma instância estática de um objeto SimpleSamplePriority. Os tipos de objeto são definidos como mostrado no exemplo de código a seguir:
public static final class SimpleSampleCompany {
public static final SimpleSampleCompany Main;
public static final SimpleSampleCompany NewYork_Sales;
public static final SimpleSampleCompany NewYork_Development;
public static final SimpleSampleCompany London_Sales;
public static final SimpleSampleCompany London_Development;
}
public static final class SimpleSamplePriority {
public static final SimpleSamplePriority Platinum;
public static final SimpleSamplePriority Gold;
public static final SimpleSamplePriority Silver;
public static final SimpleSamplePriority Bronze;
public static final SimpleSamplePriority Tin;
}
O cliente faz uma chamada em um objeto remoto. A área de trabalho é propagada automaticamente; nenhum dos métodos no objeto remoto utiliza um argumento de área de trabalho. No lado remoto, o pedido é primeiro tratado pelo SimpleSampleBean; o bean primeiramente lê as propriedades de identificador de site e de prioridade a partir da área de trabalho. Em seguida, o bean tenta intencionalmente, mas falha, gravar diretamente na área de trabalho importada e substituir a propriedade somente leitura de identificador de site.
O SimpleSampleBean inicia com êxito uma substituir aninhada, na qual ele substitui a prioridade do cliente, em seguida, chama um outro bean, o SimpleSampleBackendBean. O SimpleSampleBackendBean lê as propriedades da área de trabalho, que contém o identificador de site definido no cliente e a prioridade definida no SimpleSampleBean. Por último, o SimpleSampleBean conclui sua área de trabalho aninhada, grava uma mensagem com base na propriedade de identificador de site e retorna.
Usando o Gerenciador de Partição da Área de Trabalho. O exemplo de código a seguir ilustra o uso da interface do gerenciador da partição da área de trabalho. A amostra ilustra como criar e recuperar uma partição de área de trabalho de maneira programática. Observe que a criação programática de uma partição da área de trabalho está disponível apenas no cliente Java Platform platform, Enterprise Edition (Java EE). Para criar uma partição da área de trabalho no servidor, é necessário utilizar o console administrativo. Consulte o artigo Serviço de Partição da Área de Trabalho para obter os parâmetros de configuração disponíveis para configurar uma partição.
import com.ibm.websphere.workarea.WorkAreaPartitionManager;
import com.ibm.websphere.workarea.UserWorkArea;
import com.ibm.websphere.workarea.PartitionAlreadyExistsException;
import com.ibm.websphere.workarea.NoSuchPartitionException;
import java.lang.IllegalAccessError;
import java.util.Properties;
import javax.naming.InitialContext;
//Esta amostra demonstra como recuperar uma instância da
//implementação do WorkAreaPartitionManager e como utilizar essa
//instância para criar uma partição de WorkArea e recuperar uma partição.
//NOTE: Creating a partition in the way listed is only available
//apenas em um cliente J2EE. Para criar uma partição no servidor, utilize o
//administrative console do WebSphere. A recuperação de uma partição de WorkArea
//é executada da mesma maneira no cliente e no servidor.
public class Example {
//O nome da partição a ser criada/recuperada
String partitionName = "myPartitionName";
//O nome na nomenclatura Java ao qual a instância WorkAreaPartitionManager está ligada
String jndiName = "java:comp/websphere/WorkAreaPartitionManager";
//Em um cliente J2EE, um usuário deve criar uma partição da seguinte maneira:
public UserWorkArea myCreate(){
//Variável para manter nossa referência do WorkAreaPartitionManager
WorkAreaPartitionManager partitionManager = null;
//Obter uma instância da implementação do WorkAreaPartitionManager
try {
InitialContext initialContext = new InitialContext();
partitionManager = (WorkAreaPartitionManager) initialContext.lookup(jndiName);
} catch (Exception e) { }
//Definir as propriedades para configurar nossa partição de WorkArea
Properties props = new Properties();
props.put("maxSendSize","12345");
props.put("maxReceiveSize","54321");
props.put("Bidirectional","true");
props.put("DeferredAttributeSerialization","true");
//Variável utilizada para manter a partição de WorkArea recém-criada
UserWorkArea myPartition = null;
try{
//Esta é a maneira de criar uma partição no cliente J2EE client. Utilize
//o administrative console do WebSphere para criar uma partição de WorkArea
//no servidor.
myPartition = partitionManager.createWorkAreaPartition(partitionName,props);
}
catch (PartitionAlreadyExistsException e){ }
catch (IllegalAccessException e){ }
return myPartition;
}
//. . . .
//Para recuperar uma partição de WorkArea posteriormente ou
//de alguma outra classe, proceda da seguinte maneira (no cliente ou no servidor):
public UserWorkArea myGet(){
//Variável para manter nossa referência do WorkAreaPartitionManager
WorkAreaPartitionManager partitionManager = null;
//Obter uma instância da implementação do WorkAreaPartitionManager
try {
InitialContext initialContext = new InitialContext();
partitionManager = (WorkAreaPartitionManager) initialContext.lookup(jndiName);
} catch (Exception e) { }
//Variável utilizada para manter a partição de WorkArea recuperada
UserWorkArea myPartition = null;
try{
myPartition = partitionManager.getWorkAreaPartition(partitionName);
}catch(NoSuchPartitionException e){ }
return myPartition;
}
}
O que Fazer Depois
Para obter informações adicionais sobre área de trabalho, consulte o pacote com.ibm.websphere.workarea na API. A documentação da API gerada está disponível no índice do centro de informações, no caminho
.