Este tópico mostra como migrar clientes que utilizam uma interface EJB
para chamar um serviço.
- Arraste e solte a Exportação com Ligação SCA do módulo migrado
para o Editor de Montagem deste novo módulo. Isto criará uma Importação com Ligação SCA.
Para que um cliente obtenha uma referência a esta importação, deve ser
criada uma Referência Independente.
- Na paleta, selecione o item Referência Independente. Clique no canvas do
Editor de Montagem uma vez, para criar uma nova referência independente para este novo módulo.
- Selecione a ferramenta de ligação e clique na referência de serviço e, em seguida, clique em Importar.
- Clique em OK quando receber um alerta de que será criada uma referência
correspondente no nó de origem.
- Será perguntado: É mais fácil para um cliente Java utilizar uma interface
Java com esta referência – deseja converter a referência WSDL
em uma referência Java compatível?:
- Responda Sim se desejar que o cliente examine esse serviço e lance-o como uma classe Java para chamá-lo utilizando uma interface Java.
Esta nova interface Java
utiliza o nome do PortType WSDL, no qual o pacote da interface é derivado
do espaço de nomes do PortType WSDL. Existe um método definido
para cada operação definida no PortType WSDL, e cada parte da mensagem WSDL
é representada como um argumento para os métodos de interface.
- Responda Não se desejar que o cliente examine esse serviço e utilize a interface genérica com.ibm.websphere.sca.Service para chamá-lo utilizando a operação de chamada como um serviço SCA genérico.
- Renomeie a referência independente para um nome mais significativo, se apropriado,
selecionado o componente Referências Independentes no Editor de Montagem. Vá para
a visualização Propriedades, para a guia Detalhes, fazendo uma pesquisa detalhada e selecionando
a referência recém-criada e modificando o nome. Lembre-se do nome escolhido para essa referência porque o cliente precisará utilizar esse nome ao chamar o método locateService da instância com.ibm.websphere.sca.ServiceManager.
- Clique em Salvar para salvar o diagrama de Montagem.
O cliente deve ter este novo módulo em seu caminho de classe local para acessar
o módulo EJB migrado em execução no servidor.
A seguir é mostrada a aparência do código do cliente para um serviço do tipo "CustomerInfo":
// Crie um novo ServiceManager
ServiceManager serviceManager = ServiceManager.INSTANCE;
// Localize o serviço CustomerInfo
CustomerInfo customerInfoService = (CustomerInfo) serviceManager.locateService ("<nome-da-referência-independente-da-etapa-anterior");
// Chame o serviço CustomerInfo
System.out.println(" [getMyValue] getting customer info...");
DataObject customer = customerInfoService.getCustomerInfo(customerID);
O cliente deve alterar a forma que a mensagem é construída. As mensagens eram baseadas na classe WSIFMessage, mas agora
elas devem ser baseadas na classe commonj.sdo.DataObject.