Prezentowanie właściwości wyjścia InteractionSpec jako danych

Właściwości IMSInteractionSpec można zaprezentować do wyprowadzenia. Obecnie jedynymi właściwościami wyjścia, które można zaprezentować, są asyncOutputAvailable, convEnded i mapName. Aby udostępnić te właściwości klasy IMSInteractionSpec jako wyjścia, należy utworzyć nową klasę wyjściową oraz zmodyfikować pliki interfejsu i implementacji komponentu Java bean J2C przed użyciem go w aplikacji.

Zazwyczaj udostępniane są tylko właściwości, które są wymagane jako dane wyjściowe dla aplikacji Java. Kroki w tym temacie ilustrują sposób udostępnienia wszystkich właściwości klasy IMSInteractionSpec za pomocą komponentu Java bean J2C w projekcie PhoneBookJ2CBean, który został utworzony w temacie Tworzenie komponentu Java bean J2C.

Aby udostępnić wszystkie właściwości IMSInteractionSpec do wyprowadzenia, należy wykonać następujące czynności:

  1. Rozwiń projekt PhoneBookJ2CBean i w edytorze Java otwórz plik interfejsu PB.java.
  2. W pliku PB.java zaktualizuj sygnaturę metody runPB(). Dodaj argumenty dla właściwości wyjścia klasy IMSInteractionSpec. Te argumenty są używane w celu podania wartości wyjściowych udostępnionych właściwości, zaś argument OUTPUTMSGarg jest używany w ten sam sposób do podawania wartości dla komunikatów wyjściowych transakcji IMS. Po dodaniu argumentów do metody runPB() kod będzie wyglądał podobnie do poniższego:
    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. Utwórz nową klasę, WrapperBean, wykonując następujące czynności:
    1. Rozwiń projekt PhoneBookBindings, kliknij prawym przyciskiem myszy pakiet sample.ims, a następnie wybierz opcje Nowa > Klasa.
    2. Jako nazwę klasy wpisz WrapperBean.
    3. Dla metod do utworzenia wybierz opcje odziedziczone metody abstrakcyjne i Konstruktory z nadklasy.
    4. Kliknij przycisk Zakończ.
    5. Otwórz klasę WrapperBean w edytorze i dodaj instrukcję import dla klasy java.io.Serializable.
    6. Zmodyfikuj klasę WrapperBean, tak aby implementowała ona interfejs Serializable. Na przykład:
      public class WrapperBean implements Serializable {
    7. W klasie WrapperBean dodaj prywatną zmienną w celu powiązania danych Java IMS komunikatu wyjściowego transakcji IMS. Na przykład:
      private OUTPUTMSG output;
    8. W klasie WrapperBean dodaj zmienne typu private dla właściwości klasy IMSInteractionSpec, które mają zostać zaprezentowane: Na przykład:
      private boolean convEnded;
      private boolean asyncOutputAvailable;
      private String mapName;
    9. Następnie dodaj metody get i set dla komunikatu wyjściowego i każdej z prezentowanych właściwości. Na przykład:
      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;
          }
    10. Zapisz i zamknij klasę WrapperBean.
  4. Zmodyfikuj plik interfejsu, aby używać nowej klasy wyjściowej WrapperBean, rozwijając gałąź PhoneBookJ2CBean > sample.ims, a następnie otwierając plik interfejsu PB.java w edytorze Java.
  5. Zmień dane wyjściowe metody runPB(), która uruchamia transakcję IMS, aby zwracała klasę WrapperBean zamiast OUTPUTMSG. Na przykład:
    public sample.ims.WrapperBean runBP(INPUTMSG arg) throws javax.resource.ResourceException;
  6. Zmodyfikuj plik implementacji, aby używał nowej klasy wyjściowej WrapperBean, rozwijając gałąź PhoneBookJ2CBean > sample.ims i otwierając plik implementacji PBImpl.java w edytorze Java.
  7. Zmień metodę wyjściową runPB(), która uruchamia transakcję IMS, aby zwracała klasę WrapperBean zamiast OUTPUTMSG. Na przykład:
    public sample.ims.WrapperBean runBP(INPUTMSG arg) throws javax.resource.ResourceException {
  8. Zaktualizuj dokumentację Javadoc dla metody runPB(), dodając znaczniki biblioteki Doclet dla właściwości wyjścia, które mają zostać zaprezentowane. Na przykład następująca dokumentacja Javadoc dla metody runPB() zawiera znaczniki zarówno dla właściwości wejścia, jak i wyjścia:
    /**
         * @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. Zapisz i zamknij plik. Nowy kod implementacji został wygenerowany dla metody runPB().
Właściwości klasy IMSInteractionSpec zostały teraz udostępnione do wyprowadzania.

Opinie