Notas sobre o Release - Cliente de Teste

© Direitos Autorais International Business Machines Corporation 2005. Todos os direitos reservados. Direitos Restritos aos Usuários do Governo dos Estados Unidos - Uso, duplicação ou divulgação restritos pelo documento GSA ADP Schedule Contract com a IBM Corp.

Notas sobre o Release

1.0 Descrição
2.0 Limitações
   2.1 O Cliente de Teste de Integração Requer que Classes Java(TM) Possuam um Construtor de Argumento Zero
   2.2 Transações e o Cliente de Teste de Integração
3.0 Problemas Conhecidos e Soluções Alternativas
   3.1 O Depurador Pode Não Ser Inicializado na Primeira Chamada do Cliente de Teste
   3.2 O Estilo de Chamada Assíncrona Não É Diretamente Suportado
   3.3 Tipos de Matriz Codificados em SOAP Não São Suportados para Chamada
   3.4 O Módulo de Mediação Deve Ser Concluído Antes do Teste

1.0 Descrição

Este arquivo de notas sobre o release contém as informações mais recentes sobre limitações, problemas conhecidos e soluções alternativas para o cliente de teste do WebSphereR Integration Developer.

2.0 Limitações

2.1 O Cliente de Teste de Integração Requer que Classes Java(TM) Possuam um Construtor de Argumento Zero

O cliente de teste de integração requer que classes Java, que são argumentos em assinaturas de métodos, possuam um construtor de argumentos zero, bem como os métodos get/set apropriados para cada um de seus campos.

2.2 Transações e o Cliente de Teste de Integração

O cliente de teste de integração executa fora do escopo de quaisquer transações de aplicativo e assim não participa em transações. Portanto, não existe suporte para emulação de rollbacks de transações.

3.0 Problemas Conhecidos e Soluções Alternativas

3.1 O Depurador Pode Não Ser Inicializado na Primeira Chamada do Cliente de Teste

O cliente de teste de integração iniciará o WebSphereR Process Server 6.0 antes de chamar o teste, caso o servidor ainda não tenha sido iniciado.

Nesse ponto, você poderá optar por iniciar o servidor no modo de depuração ou modo normal. Se o modo de depuração for escolhido, o cliente de teste poderá chamar o teste antes do servidor ser completamente inicializado. As chamadas subseqüentes serão executadas corretamente.

Para utilizar uma solução alternativa para este problema, execute o teste novamente se ele falhar da primeira vez ou iniciar o servidor antes de chamar o teste.

3.2 O Estilo de Chamada Assíncrona Não É Diretamente Suportado

O cliente de teste de integração permite apenas que um componente seja chamado utilizando o estilo de chamada síncrona.

Para a maioria dos componentes isto não trará nenhum problema, mesmo se o componente suportar apenas o estilo de chamada assíncrona, pois a arquitetura converterá a chama síncrona para uma chamada assíncrona. Mas um componente poderia suportar ambos os estilos de chamada e poderia ter diferentes caminhos de código dependendo do estilo de chamada.

Recomenda-se testar ambos os caminhos de código. Neste caso, você poderá criar um componente JavaR que realize a chamada assíncrona e chame esse componente utilizando o cliente de teste de integração ou poderá utilizar outro cliente como página JSP para chamar o componente de maneira assíncrona.

3.3 Tipos de Matriz Codificados em SOAP Não São Suportados para Chamada

O cliente de teste não pode ser utilizado para chamar componentes que especifiquem dados utilizando matrizes codificadas por SOAP.

Exemplo de snippet XSD:

..
<xsd:restriction base="soapenc:Array">
                        <xsd:attribute ref="soapenc:arrayType"
                            wsdl:arrayType="typens:ResultElement[]" />
  </xsd:restriction>

..

Para solucionar este problema de maneira alternativa, crie um componente JavaR para chamar o serviço. O cliente de teste poderá então ser utilizado para chamar o componente Java.

3.4 O Módulo de Mediação Deve Ser Concluído Antes do Teste

Antes de testar um módulo de mediação utilizando o Cliente de Teste de Integração, todas as referências do componente de fluxo de mediação devem estar conectados e todas as importações devem ter uma ligação.  Se esses itens não estiverem presentes, exceções como as apresentadas a seguir serão geradas quando o componente for chamado:

Caused by: org.eclipse.emf.common.util.BasicEList$BasicIndexOutOfBoundsException: index=0, size=0
 at org.eclipse.emf.common.util.BasicEList.get(BasicEList.java(Compiled Code))
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.FlowActionFactoryImpl.getWire(FlowActionFactoryImpl.java:923)
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.FlowActionFactoryImpl.createRequestSCAFromSMO(FlowActionFactoryImpl.java:854)
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.SCAInvocationAction.invokeSync(SCAInvocationAction.java:343)
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.SyncInvocation.complete(SyncInvocation.java:122)
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.FlowActionFactoryImpl.complete(FlowActionFactoryImpl.java:706)
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.FlowActionFactoryImpl.create(FlowActionFactoryImpl.java:393)
 at com.ibm.ws.sibx.scax.mediation.engine.SCACalloutElement.invoke(SCACalloutElement.java:134)
 at com.ibm.ws.sibx.scax.mediation.engine.MediationPrimitive.invokeConnections(MediationPrimitive.java:242)
 at com.ibm.ws.sibx.scax.mediation.engine.Input.invoke(Input.java:125)
 at com.ibm.ws.sibx.scax.mediation.engine.RequestFlow.invokeFlow(RequestFlow.java:123)
 at com.ibm.ws.sibx.scax.mediation.engine.MediationFlow.invokeRequestFlow(MediationFlow.java:112)
 at com.ibm.wsspi.sibx.mediation.flow.ejb.MediationFlowBean.invokeRequestFlow(MediationFlowBean.java:189)
 ... 53 more