Exemplo da Exposição Manual de interactionSpec como Dados de Saída: Amostra do Phonebook do IMS

É possível expor propriedades IMSInteractionSpec para saída. Atualmente, as únicas propriedades de saída que podem ser expostas são asyncOutputAvailable, convEnded e mapName. Para expor essas propriedades de IMSInteractionSpec para saída, você deve criar uma classe de saída e modificar os arquivos de interface e implementação do bean J2C antes de usá-los em um aplicativo.

Sobre Esta Tarefa

Normalmente você expõe apenas as propriedades que o aplicativo Java™ precisa como saída. As etapas neste tópico ilustram como expor todas as propriedades de IMSInteractionSpec usando o bean J2C no projeto PhoneBookJ2CBean que foi criado no tópico Criando um Bean J2C para Conectar ao IMS.

Procedimento

  1. Expanda o projeto PhoneBookJ2CBean e abra o arquivo de interfaces PB.java no editor Java.
  2. No arquivo PB.java, atualize a assinatura de runPB(). Inclua os argumentos para as propriedades de saída de IMSInteractionSpec. Esses argumentos são usados para fornecer valores de saída para as propriedades expostas da mesma maneira que o argumento OUTPUTMSGarg é usado para fornecer valores para a mensagem de saída da transação do IMS. Após incluir os argumentos no método runPB(), o código ficará semelhante a este:
    package sample.ims;
    
    
    /**
     * @generated
     */
    public interface PB {
    
    	/**
    	 * @generated
    	 */
    	public sample.ims.WrapperBean runPB(sample.ims.INPUTMSG arg,
                int myCommitMode,
                int myExecutionTimeout,
                int myImsRequestType,
                int myInteractionVerb,
                String myLtermName,
                String myMapName,
                boolean myPurgeAsyncOutput,
                boolean myReRoute,
                String myReRouteName,
                int mySocketTimeout,
                String myUserName,
                String myPassword,
                String myGroupName,
                String myClientID) throws javax.resource.ResourceException;
    }
  3. Crie uma classe, WrapperBean, concluindo as seguintes etapas:
    1. Expanda o projeto, PhoneBookBindings, clique com o botão direito do mouse no pacote sample.ims e selecione Novo > Classe.
    2. Para o nome da classe, digite WrapperBean.
    3. Para os métodos a serem criados, selecione Métodos Abstratos Herdados e Construtores de Superclasse e clique em Concluir.
    4. Abra a classe WrapperBean em um editor e inclua uma instrução de importação para java.io.Serializable.
    5. Modifique a classe WrapperBean para que ela implemente o Serializável. Por exemplo:
      public class WrapperBean implements Serializable {
    6. Na classe WrapperBean, inclua uma variável particular para a ligação de dados Java do IMS da mensagem de saída da transação do IMS. Por exemplo:
      private OUTPUTMSG output;
    7. Na classe WrapperBean, inclua variáveis particulares para as propriedades de IMSInteractionSpec que deseja expor: Por exemplo:
      private boolean convEnded;
      private boolean asyncOutputAvailable;
      private String mapName;
    8. Em seguida, inclua os métodos get e set para a mensagem de saída e cada uma das propriedades expostas. Por exemplo:
      public OUTPUTMSG getOutput(){
              return output;
          }   
         
          public boolean getConvEnded(){
              return convEnded;
          }
         
          public boolean getAsyncOutputAvailable(){
              return asyncOutputAvailable;
          } 
          
          public String getMapName(){
              return mapName;
          }
         
          public void setOutput(OUTPUTMSG output){
              this.output = output;
          }
         
          public void setAsyncOutputAvailable(boolean asyncOutputAvailable){
              this.asyncOutputAvailable = asyncOutputAvailable;
          }   
      
          public void setConvEnded(boolean convEnded){
              this.convEnded = convEnded;
          }    
          
          public void setMapName(String mapName){
              this.mapName = mapName;
          }
    9. Salve e feche a classe WrapperBean.
  4. Modifique o arquivo de interfaces para usar a nova classe de saída, WrapperBean, expandindo PhoneBookJ2CBean > sample.ims e abra o arquivo de interfaces PB.java no editor Java.
  5. Altere a saída do método runPB(), que executa a transação do IMS, para retornar WrapperBean em vez de OUTPUTMSG. Por exemplo:
    public sample.ims.WrapperBean runBP(INPUTMSG arg) throws
    javax.resource.ResourceException;
  6. Modifique o arquivo de implementação para usar a nova classe de saída, WrapperBean, expandindo PhoneBookJ2CBean > sample.ims e abrindo o arquivo de implementação PBImpl.java no editor Java.
  7. Altere o método de saída runPB(), que executa a transação do IMS, para retornar WrapperBean em vez de OUTPUTMSG. Por exemplo:
    public sample.ims.WrapperBean runBP(INPUTMSG arg) throws
    javax.resource.ResourceException {
  8. Atualize o javadoc para o método runPB() incluindo tags doclet para as propriedades de saída que deseja expor. Por exemplo, o Javadoc a seguir para runPB() mostra tags para propriedades de entrada e de saída.
    /**
         * @j2c.interactionSpec class="com.ibm.connector2.ims.ico.IMSInteractionSpec"
         * @j2c.interactionSpec-property name="commitMode" argumentBinding="myCommitMode"
         * @j2c.interactionSpec-property name="executionTimeout"
    argumentBinding="myExecutionTimeout"
         * @j2c.interactionSpec-property name="imsRequestType"
    argumentBinding="myImsRequestType"
         * @j2c.interactionSpec-property name="interactionVerb"
    argumentBinding="myInteractionVerb"
         * @j2c.interactionSpec-property name="ltermName" argumentBinding="myLtermName"
         * @j2c.interactionSpec-property name="mapName" argumentBinding="myMapName"
         * @j2c.interactionSpec-property name="purgeAsyncOutput"
    argumentBinding="myPurgeAsyncOutput"
         * @j2c.interactionSpec-property name="reRoute" argumentBinding="myReRoute"
         * @j2c.interactionSpec-property name="reRouteName"
    argumentBinding="myReRouteName"
         * @j2c.interactionSpec-property name="socketTimeout"
    argumentBinding="mySocketTimeout"
         * @j2c.interactionSpec-returnProperty
         *   name="convEnded"
         *   outputBinding="convEnded"
         * @j2c.interactionSpec-returnProperty
         *   name="asyncOutputAvailable"
         *   outputBinding="asyncOutputAvailable"
         * @j2c.interactionSpec-returnProperty
         *   name="mapName"
         *   outputBinding="mapName"
         *
         * @j2c.connectionSpec class="com.ibm.connector2.ims.ico.IMSConnectionSpec"
         * @j2c.connectionSpec-property name="userName" argumentBinding="myUserName"
         * @j2c.connectionSpec-property name="password" argumentBinding="myPassword"
         * @j2c.connectionSpec-property name="groupName" argumentBinding="myGroupName"
         * @j2c.connectionSpec-property name="clientID" argumentBinding="myClientID"
         *
         * @generated
         */  
  9. Salve e feche o arquivo. O novo código de implementação é gerado para o método runPB().

O que Fazer Depois

Você expôs as propriedades IMSInteractionSpec para saída.

Feedback