È possibile esporre le proprietà IMSInteractionSpec per l'output. Attualmente, le uniche proprietà di output che possono essere esposte sono asyncOutputAvailable, convEnded
e mapName. Per esporre queste proprietà di IMSInteractionSpec per l'output, è necessario creare una nuova classe di output e modificare i file di interfaccia e di implementazione del bean Java J2C prima di utilizzarli in un'applicazione.
Generalmente vengono esposte solo le proprietà necessarie come output per l'applicazione Java. Le fasi in questo argomento illustrato come esporre tutte le proprietà di IMSInteractionSpec utilizzando il bean Java J2C nel progetto
PhoneBookJ2CBean creato nell'argomento,
Creazione di un bean Java J2C.
Per esporre tutte le proprietà di IMSInteractionSpec per l'output, procedere come segue:
- Espandere il progetto PhoneBookJ2CBean e aprire il file di interfaccia, PB.java, nell'editor Java.
- Nel file PB.java, aggiornare la firma di runPB(). Aggiungere gli argomenti per le proprietà di output di IMSInteractionSpec. Questi argomenti vengono utilizzati per fornire valori di output per le proprietà esposte, alla stessa maniera con cui l'argomento OUTPUTMSGarg viene utilizzato per fornire valori per il messaggio di output della transazione IMS. Dopo l'aggiunta degli argomenti nel metodo runPB(), il codice è simile al seguente:
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;
}
- Creare una nuova classe, WrapperBean, le modo seguente:
- Espandere il progetto , PhoneBookBindings,
fare clic con il pulsante destro del mouse sul pacchetto sample.ims e selezionare Nuovo > Classe.
- Per il nome della classe, immettere WrapperBean.
- Per i metodi da creare, selezionare Metodi astratti ereditati e Costruttori da superclasse.
- Fare clic su Fine.
- Aprire la classe WrapperBean in un editor e aggiungere un'istruzione di importazione per java.io.Serializable.
- Modificare la classe WrapperBean in modo da implementare Serializable. Ad esempio:
public class WrapperBean implements Serializable {
- Nella classe WrapperBean, aggiungere una variabile privata per il binding dati Java IMS del messaggio di output della transazione IMS. Ad esempio:
private OUTPUTMSG output;
- Nella classe WrapperBean, aggiungere variabili private per le proprietà di IMSInteractionSpec che si desidera esporre: Ad esempio:
private boolean convEnded;
private boolean asyncOutputAvailable;
private String mapName;
- Quindi aggiungere metodi get e set per il messaggio di output e ciascuna delle proprietà esposte. Ad esempio:
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;
}
- Salvare e chiudere la classe WrapperBean.
- Modificare il file di interfaccia per utilizzare la nuova classe di output, WrapperBean, espandendo PhoneBookJ2CBean > sample.ims e aprendo il file di interfaccia, PB.java, nell'editor Java.
- Modificare l'output del metodo runPB(), che esegue la transazione IMS, in modo che restituisca WrapperBean invece di OUTPUTMSG. Ad esempio:
public sample.ims.WrapperBean runBP(INPUTMSG arg) throws javax.resource.ResourceException;
- Modificare il file di implementazione per utilizzare la nuova classe di output, WrapperBean, espandendo PhoneBookJ2CBean > sample.ims e aprendo il file di implementazione, PBImpl.java, nell'editor Java.
- Modificare l'output del metodo runPB(), che esegue la transazione IMS,
in modo che restituisca WrapperBean invece di OUTPUTMSG. Ad esempio:
public sample.ims.WrapperBean runBP(INPUTMSG arg) throws javax.resource.ResourceException {
- Aggiornare il javadoc per il metodo runPB() aggiungendo tag doclet per le proprietà di output che si desidera esporre. Ad esempio, il seguente javadoc per runPB() illustra tag per proprietà sia di input che di output:
/**
* @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
*/
- Salvare e chiudere il file. Il nuovo codice di implementazione viene generato per il metodo runPB().
Le proprietà IMSInteractionSpec per l'output sono state esposte.