A Lição 4 conduz você pela criação de uma classe de teste
Java™ para testar seu aplicativo.
Nesta lição, você
- Cria uma classe de teste Java.
- Edita a classe usando o código fornecido abaixo.
- Executa a classe de teste para testar seu aplicativo.
- Primeiro você cria uma classe de teste
Java: Expanda
.
- Clique com o botão direito do mouse em sample.ims e selecione
.
- No campo Nome, digite TestMultiSeg. Observe que a classe TestMultiSeg é fornecida apenas como exemplo; você precisa alterar o
código de transação para as especificações da máquina do
IMS.
Consulte o administrador do IMS para obter o código
de transação. É possível localizar a instrução input.setIn__trcd("SKS6
") na classe TestMultiSeg.java e fazer modificações.
- Assegure-se de que a Pasta de Origem contenha
MultiSegOutput/JavaSource e de que o Pacote
contenha sample.ims.
- Clique em Concluir.
- Abra TestMultiSeg.java no editor de classe
Java.
- Substitua todo o código no editor pelo seguinte:
/***********************************************************
* Materiais Licenciados - Propriedade da IBM
*
* com.ibm.j2c.cheatsheet.content
*
*Copyright IBM Corporation 2004. All Rights Reserved.
*
* Nota sobre Direitos Restritos para Usuários do Governo dos Estados Unidos: Uso,
* duplicação ou divulgação restritos pelo documento GSA ADP Schedule
* Contract com a IBM Corp.
************************************************************/
package sample.ims;
import com.ibm.etools.marshall.util.MarshallIntegerUtils;
import sample.ims.data.*;
public class TestMultiSeg
{
public static void main(String[] args)
{
byte[] segBytes = null;
int srcPos = 0;
int dstPos = 0;
int totalLen = 0;
int remainLen = 0;
byte[] buff;
short LL = 0;
short ZZ = 0;
tente
{
// ---------------------------------------------------
// Preencha a mensagem de entrada da transação do IMS com
// dados. Use o método do manipulador de formato de mensagem de entrada
// getSize() para configurar o campo LL da mensagem de entrada.
// ---------------------------------------------------
InputMsg input = new InputMsg();
input.setIn__ll((short) input.getSize());
input.setIn__zz((short) 0);
//----------------------------------------------
// descubra o código de transação do administrador do // IMS
//-----------------------------------------------
input.setIn__trcd("SKS6 ");
input.setIn__data1("M2 SI1");
input.setIn__data2("M3 SI1");
// ---------------------------------------------------
// Execute a transação do IMS. A mensagem de saída
// multissegmentos é retornada.
// ---------------------------------------------------
MSOImpl proxy = new MSOImpl();
sample.ims.CCIBuffer output = proxy.runMultiSegOutput(input);
// ---------------------------------------------------
// Recupere a mensagem de saída multissegmentos como uma
// matriz de bytes usando o método do manipulador de formato
// de mensagem de saída getBytes().
// ---------------------------------------------------
System.out.println(
"\nSize of output message is: " + output.getSize());
segBytes = output.getBytes();
srcPos = 0;
dstPos = 0;
totalLen = segBytes.length;
remainLen = totalLen;
// ---------------------------------------------------
// Preencha o primeiro objeto de segmento a partir do buffer.
// ---------------------------------------
buff = null;
// Obtenha o comprimento do segmento.
LL =
MarshallIntegerUtils.unmarshallTwoByteIntegerFromBuffer(
segBytes,
srcPos,
true,
MarshallIntegerUtils.SIGN_CODING_TWOS_COMPLEMENT);
// Coloque o segmento na matriz de bytes.
buff = new byte[LL];
System.arraycopy(segBytes, srcPos, buff, dstPos, LL);
remainLen -= LL;
// Crie e preencha o objeto de segmento a partir da matriz de bytes.
OutputSeg1 S1 = new OutputSeg1();
S1.setBytes(buff);
System.out.println(
"\nOutSeg1 LL is: "
+ S1.getOut__ll()
+ "\nOutSeg1 ZZ is: "
+ S1.getOut__zz()
+ "\nOutSeg1_DATA1 is: "
+ S1.getOut__data1());
// ---------------------------------------------------
// Preencha um segundo objeto de segmento a partir do buffer.
// ---------------------------------------------------
srcPos += LL;
buff = null;
// Obtenha o comprimento do segmento.
LL =
MarshallIntegerUtils.unmarshallTwoByteIntegerFromBuffer(
segBytes,
srcPos,
true,
MarshallIntegerUtils.SIGN_CODING_TWOS_COMPLEMENT);
// Coloque o segmento na matriz de bytes.
buff = new byte[LL];
System.arraycopy(segBytes, srcPos, buff, dstPos, LL);
remainLen -= LL;
// Crie e preencha o objeto de segmento a partir da matriz de bytes.
OutputSeg2 S2 = new OutputSeg2();
S2.setBytes(buff);
System.out.println(
"\nOutSeg2 LL is: "
+ S2.getOut__ll()
+ "\nOutSeg2 ZZ is: "
+ S2.getOut__zz()
+ "\nOutSeg2_DATA1 is: "
+ S2.getOut__data1()
+ "\nOutSeg2_DATA2 is: "
+ S2.getOut__data2());
// ---------------------------------------------------
// Preencha o terceiro objeto de segmento a partir do buffer.
// ---------------------------------------------------
srcPos += LL;
buff = null;
// Obtenha o comprimento do segmento.
LL =
MarshallIntegerUtils.unmarshallTwoByteIntegerFromBuffer(
segBytes,
srcPos,
true,
MarshallIntegerUtils.SIGN_CODING_TWOS_COMPLEMENT);
// Coloque o segmento na matriz de bytes.
buff = new byte[LL];
System.arraycopy(segBytes, srcPos, buff, dstPos, LL);
remainLen -= LL;
// Crie e preencha o objeto de segmento a partir da matriz de bytes.
OutputSeg3 S3 = new OutputSeg3();
S3.setBytes(buff);
System.out.println(
"\nOutSeg3 LL is: "
+ S3.getOut__ll()
+ "\nOutSeg3 ZZ is: "
+ S3.getOut__zz()
+ "\nOutSeg3_DATA1 is: "
+ S3.getOut__data1()
+ "\nOutSeg3_DATA2 is: "
+ S3.getOut__data2()
+ "\nOutSeg3_DATA3 is: "
+ S3.getOut__data3());
}
catch (Exception e)
{
System.out.println("\nCaught exception is: " + e);
}
}
}
- Agora teste seu aplicativo: Expanda
.
- Clique com o botão direito do mouse na classe TestMultiSeg.java e selecione
Executar.
Selecione Executar como > Aplicativo
Java
- É possível ver a saída no console:

- Você concluiu o tutorial Saída Multissegmentos.