Configuración y desarrollo de un ResourceAdapter básico de JCA

Puede configurar y desplegar una fábrica de conexiones (ConnectionFactory) básica de JCA (Java™ EE Connector Architecture) y un adaptador de recursos.

Acerca de esta tarea

Puede instalar un adaptador de recursos y configurar instancias de los recursos que proporciona. Esta tarea utiliza un adaptador de recursos de ejemplo denominado ExampleRA.rar, que proporciona 3 tipos de recursos: una fábrica de conexiones y dos tipos de objetos administrados.

Procedimiento

  1. Habilite la característica JCA en su archivo server.xml. El archivo server.xml se halla en [vía_acceso_a_liberty\wlp\usr\servers\nombre_servidor]
    <server>
      <featureManager>
        <feature>jca-1.6</feature>
        <feature>servlet-3.0</feature>
      </featureManager>
    </server>
  2. Coloque el archivo RAR del adaptador de recursos (ExampleRA.rar) en la carpeta dropins de su servidor. Si se está ejecutando el servidor, aparecerá el siguiente mensaje en el registro de consola indicando que el adaptador de recursos se ha instalado:
    [AUDIT ] J2CA7001I: Se ha instalado el adaptador de recursos ExampleRA en 1,306 segundos.
  3. Inspeccione el descriptor de despliegue, las anotaciones y demás documentación desde el adaptador de recursos para identificar los tipos de recursos que proporciona el adaptador y las propiedades de configuración que acepta cada adaptador. El adaptador de recursos de ejemplo, ExampleRA.rar, tiene esta información en el descriptor de despliegue ra.xml. El archivo ra.xml se halla en [vía_acceso_a_ExampleRA\ExampleRA\META-INF.] El descriptor de despliegue identifica 3 tipos de recursos que puede configurar.
    <connection-definition>
     <managedconnectionfactory-class>com.ibm.example.jca.adapter.ManagedConnectionFactoryImpl</managedconnectionfactory-class>
     <config-property>
      <config-property-name>tableName</config-property-name>
      <config-property-type>java.lang.String</config-property-type>
     </config-property>
     <connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
     ...
    </connection-definition>
    
        <adminobject>
          <adminobject-interface>javax.resource.cci.ConnectionSpec</adminobject-interface>
          <adminobject-class>com.ibm.example.jca.adapter.ConnectionSpecImpl</adminobject-class>
          <config-property>
            <config-property-name>readOnly</config-property-name> 
            <config-property-type>java.lang.Boolean</config-property-type>
            <config-property-value>false</config-property-value> 
          </config-property>
        </adminobject>
    
        <adminobject>
          <adminobject-interface>javax.resource.cci.InteractionSpec</adminobject-interface>
          <adminobject-class>com.ibm.example.jca.adapter.InteractionSpecImpl</adminobject-class>
          <config-property>
            <description>Function name. Supported values are: ADD, FIND, REMOVE</description>
            <config-property-name>functionName</config-property-name> 
            <config-property-type>java.lang.String</config-property-type> 
          </config-property>
        </adminobject>
  4. En el archivo server.xml, configure instancias de los tipos de recursos disponibles.
    <server>
      <featureManager>
        <feature>jca-1.6</feature>
        <feature>servlet-3.0</feature>
      </featureManager>
    
      <connectionFactory jndiName="eis/conFactory">
        <properties.ExampleRA tableName="TABLE1"/>
      </connectionFactory>
    
      <adminObject jndiName="eis/conSpec">
        <properties.ExampleRA.ConnectionSpec/>
      </adminObject>
    
      <adminObject jndiName="eis/iSpec_ADD">
        <properties.ExampleRA.InteractionSpec functionName="ADD"/>
      </adminObject>
    
      <adminObject jndiName="eis/iSpec_FIND">
        <properties.ExampleRA.InteractionSpec functionName="FIND"/>
      </adminObject>
    
    </server>
  5. Utilice la inyección de recursos para acceder a los recursos de su servlet; por ejemplo:
        @Resource(lookup = "eis/conFactory")
        private ConnectionFactory conFactory;
    
        @Resource(lookup = "eis/conSpec")
        private ConnectionSpec conSpec;
    
        @Resource(lookup = "eis/iSpec_ADD")
        private InteractionSpec iSpec_ADD;
    
        @Resource(lookup = "eis/iSpec_FIND")
        private InteractionSpec iSpec_FIND;
    
        ...
    
            MappedRecord input = conFactory.getRecordFactory().createMappedRecord("input");
            input.put("city", "Rochester");
            input.put("state", "Minnesota");
            input.put("population", 106769);
    
            Connection con = conFactory.getConnection(conSpec);
            try {
                Interaction interaction = con.createInteraction();
                interaction.execute(iSpec_ADD, input);
                interaction.close();
            } finally {
                con.close();
            }
    Nota: Debe habilitar la característica JNDI en el archivo server.xml si desea buscar recursos de espacio de nombres en lugar de utilizar la inyección.

Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_jca_config_dep.html