Criando o Componente Java Customizado: Opção 1

A técnica de migração recomendada é utilizar o tipo Componente Java do WebSphere Integration Developer que permite representar o serviço Java como um componente SCA. Durante a migração, o código Java customizado deve ser escrito para conversão entre o estilo de interface Java do SCA e o estilo de interface do componente Java existente.

Para criar o componente Java customizado:
  1. No projeto de módulo, expanda Interfaces e selecione a interface WSDL que foi gerada para essa classe Java no WebSphere Studio Application Developer Integration.
  2. Arraste e solte essa interface sobre o Editor de Montagem. Um diálogo aparecerá solicitando que você selecione o tipo de componente que irá criar. Selecione Componente sem Tipo de Implementação e clique em OK.
  3. Um componente genérico aparecerá no diagrama de Montagem. Selecione-o e vá para a visualização Propriedades.
  4. Na guia Descrição, você pode alterar o nome e o nome de exibição do componente para algo mais descritivo.
  5. Na guia Detalhes você verá que esse componente tem uma interface - aquela que você arrastou e soltou sobre o Editor de Montagem.
  6. Certifique-se de que a classe Java que você está tentando acessar esteja no caminho de classe do projeto de serviço, se ela não estiver contida dentro do próprio projeto de serviço.
  7. Clique com o botão direito no projeto e selecione Abrir Editor de Dependência…. Na seção Java, certifique-se de que o projeto que contém a classe Java antiga esteja listada. Se não estiver, inclua-a clicando no botão Incluir….
  8. De volta ao Editor de Montagem, clique com o botão direito do mouse no componente que acabou de criar e selecione Gerar Implementação… > Java Em seguida, selecione o pacote no qual a implementação Java será gerada. Isso cria um esqueleto do serviço Java que adere à interface WSDL de acordo com o modelo de programação SCA, no qual os tipos complexos são representados por um objeto que é um commonj.sdo.DataObject e os tipos simples são representados por equivalentes de seus Objetos Java.
Os seguintes exemplos de código mostram:
  1. Definições relevantes da interface WSDL 5.1.
  2. Os métodos WebSphere Studio Application Developer Integration Edition 5.1 Java que correspondem ao WSDL
  3. Os métodos WebSphere Integration Developer 6.0 Java para o mesmo WSDL
O seguinte código mostra as definições relevantes da interface WSDL 5.1:
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
attributeFormDefault="qualified"
elementFormDefault="unqualified"
targetNamespace="http://migr.practice.ibm.com/"
xmlns:xsd1="http://migr.practice.ibm.com/">
<complexType name="StockInfo">
<all>
<element name="index" type="int"/>
<element name="price" type="double"/>
<element name="symbol" nillable="true"
type="string"/>
</all>
</complexType>
</schema>
</types>
<message name="getStockInfoRequest">
<part name="symbol" type="xsd:string"/>
</message>
<message name="getStockInfoResponse">
<part name="result" type="xsd1:StockInfo"/>
</message>
<operation name="getStockInfo" parameterOrder="symbol">
<input message="tns:getStockInfoRequest"
name="getStockInfoRequest"/>
<output message="tns:getStockInfoResponse"
name="getStockInfoResponse"/>
</operation>
O seguinte código mostra os métodos WebSphere Studio Application Developer Integration Edition 5.1 Java que correspondem ao WSDL:
public StockInfo getStockInfo(String symbol)
{
return new StockInfo();
}
public void setStockPrice(String symbol, float newPrice)
{
		// definir algumas coisas
}
O seguinte código mostra os métodos do WebSphere Integration Developer 6.0 Java para o mesmo WSDL:
public DataObject getStockInfo(String aString) {
		//TODO Precisa ser implementado.
        return null;
}
	public void setStockPrice(String symbol, Float newPrice) {
		//TODO Precisa ser implementado.
}
Agora, você precisará preencher o código no qual vê as tags “//TODO” na classe de implementação Java gerada. Existem duas opções:
  1. Mova a lógica da classe Java original para essa classe, adaptando-a para utilizar DataObjects.
    • Essa será a opção recomendada se você tiver escolhido a abordagem de cima para baixo no WebSphere Studio Application Developer Integration Edition e desejar que o componente Java lide com parâmetros DataObject. Esse retrabalho é necessário porque as classes Java geradas a partir de definições do WSDL no WebSphere Studio Application Developer Integration Edition têm dependências do WSIF que devem ser eliminadas.
  2. Crie uma instância privada da classe Java antiga dentro dessa classe Java gerada e escreva código para:
    1. Converter todos os parâmetros da classe de implementação Java gerada em parâmetros que a classe Java antiga espera.
    2. Chamar a instância privada da classe Java antiga com os parâmetros convertidos.
    3. Converter o valor de retorno da classe Java antiga para o tipo de valor de retorno declarado pelo método de implementação Java gerado.
    4. Essa opção é recomendada para cenários de consumo nos quais os proxies de serviço do WSIF devem ser consumidos pelos novos componentes Java de estilo da 6.0.
Depois de concluir uma das opções acima, você deverá religar o serviço Java. Não deve haver nenhuma referência, portanto, você precisa apenas religar a interface do componente Java:
  • Se esse serviço for chamado por um processo de negócios no mesmo módulo, então, crie uma ligação da referência do processo de negócios adequada para essa interface do componente Java.
  • Se esse serviço for chamado por um processo de negócios em outro módulo, crie uma Exportação com Ligação SCA e, a partir do outro módulo, arraste e solte essa exportação no Editor de Montagem desse módulo para criar a Importação com Ligação SCA correspondente. Ligue a referência do processo de negócios adequada àquela Importação.
  • Se esse serviço tiver sido publicado no WebSphere Studio Application Developer Integration Edition para expô-lo externamente, então, consulte a seção "Criando Exportações do SCA para Acessar o Serviço Migrado" para obter instruções sobre como publicar novamente o serviço.
Tarefas relacionadas
Criando Exportações SCA para Acessar o Serviço Migrado

Feedback
(C) Direitos Autorais IBM Corporation 2005, 2006. Todos os Direitos Reservados.