É 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
- Expanda o projeto PhoneBookJ2CBean e abra o arquivo de
interfaces PB.java no editor
Java.
- 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;
}
- Crie uma classe, WrapperBean, concluindo as seguintes etapas:
- Expanda o projeto, PhoneBookBindings, clique com o botão
direito do mouse no pacote sample.ims e selecione Novo
> Classe.
- Para o nome da classe, digite WrapperBean.
- Para os métodos a serem criados, selecione Métodos Abstratos
Herdados e Construtores de Superclasse e clique em
Concluir.
- Abra a classe WrapperBean em um editor e inclua uma instrução de importação
para java.io.Serializable.
- Modifique a classe WrapperBean para que ela implemente o Serializável. Por exemplo:
public class WrapperBean implements Serializable {
- 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;
- 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;
- 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;
}
- Salve e feche a classe WrapperBean.
- 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.
- 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;
- 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.
- 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 {
- 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
*/
- 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.