将 InteractionSpec 输出属性作为数据进行公开

可以公开 IMSInteractionSpec 属性以进行输出。目前,可以公开的输出属性只有 asyncOutputAvailable、convEnded 和 mapName。要给出输出的这些 IMSInteractionSpec 属性,必须创建新的输出类并修改 J2C Java™ bean 的接口文件和实现文件才能在应用程序中使用。

通常,您只给出 Java 应用程序需要作为输出的那些属性。本主题中的各步骤说明了如何使用 PhoneBookJ2CBean 项目中的 J2C Java bean 来给出所有 IMSInteractionSpec 属性,该 Java bean 是在创建 J2C Java bean 这一主题中创建的。

要公开所有 IMSInteractionSpec 属性以进行输出,请完成下列步骤:

  1. 展开 PhoneBookJ2CBean 项目,并在 Java 编辑器中打开接口文件 PB.java
  2. 在 PB.java 文件中,更新 runPB() 的特征符。 为 IMSInteractionSpec 的输出属性添加自变量。这些自变量用来为所给出的属性提供输出值,同样,自变量 OUTPUTMSGarg 用来为 IMS™ 事务的输出消息提供值。在 runPB() 方法中添加自变量之后,源代码类似于:
    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. 通过完成下列步骤来创建新类 WrapperBean
    1. 展开 PhoneBookBindings 项目,右键单击 sample.ims 包,并选择新建 > 类
    2. 输入 WrapperBean 作为该类的名称。
    3. 对于要创建的方法,选择继承的抽象方法超类中的构造函数
    4. 单击完成
    5. 在编辑器中打开 WrapperBean 类,并为 java.io.Serializable 添加 import 语句。
    6. 修改 WrapperBean 类以使它实现 Serializable。 例如:
      public class WrapperBean implements Serializable {
    7. WrapperBean 类中,为 IMS 事务的输出消息的 IMS Java 数据绑定添加一个私有变量。 例如:
      private OUTPUTMSG output;
    8. WrapperBean 类中,为您想公开的 IMSInteractionSpec 属性添加私有变量。 例如:
      private boolean convEnded;
      private boolean asyncOutputAvailable;
      private String mapName;
    9. 然后,为输出消息和每个已公开的属性添加 get 和 set 方法。 例如:
      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. 保存并关闭 WrapperBean 类。
  4. 通过展开 PhoneBookJ2CBean > sample.ims 并在 Java 编辑器中打开 PB.java 接口文件,来将该接口文件修改为使用新的输出类 WrapperBean
  5. 将用来运行 IMS 事务的 runPB() 方法的输出更改为返回 WrapperBean 而不是 OUTPUTMSG 例如:
    public sample.ims.WrapperBean runBP(INPUTMSG arg) throws javax.resource.ResourceException;
  6. 通过展开 PhoneBookJ2CBean > sample.ims 并在 Java 编辑器中打开实现文件 PBImpl.java,来将该实现文件修改为使用新的输出类 WrapperBean
  7. 将用来运行 IMS 事务的输出方法 runPB() 更改为返回 WrapperBean 而不是 OUTPUTMSG 例如:
    public sample.ims.WrapperBean runBP(INPUTMSG arg) throws javax.resource.ResourceException {
  8. 通过为您想公开的输出属性添加 doclet 标记来更新 runPB() 方法的 javadoc。 例如,runPB() 的以下 javadoce 显示了输入属性和输出属性的标记:
    /**
         * @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. 保存并关闭该文件。 这就为 runPB() 方法生成了新的实现代码。
现在,您已公开 IMSInteractionSpec 属性以进行输出。

反馈