Mostrando entradas con la etiqueta Recursos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Recursos. Mostrar todas las entradas

JNDI (Java Naming Directory Interface). Configurando recursos en Tomcat.

La Java Naming and Directory Interface (JNDI) es una interfaz de programación (API) que proporciona funcionalidades de nombrado y directorio a las aplicaciones escritas usando Java. Está definido para ser independiente de cualquier implementación de servicio de directorio. Así se puede acceder a una gran variedad de directorios de una forma común.

Sirve para configurar recursos compartidos para aplicaciones java organizándolos por directorio con nombres únicos. Es un servicio de nombres que permite:
  • Asociar nombres con objetos.
  • Permitir la búsqueda de un objeto por su nombre.
En el mercado existen diferentes servicios de directorios, por ejemplo:
  • LDAP (Lightweight Directory Access Protocol)
  • NDS (Novell Directory Service)
  • NIS (Network Information Service)
Cada servicio tiene una forma de acceso diferente, lo que implica que si se cambia de fabricante hay que reescribir los clientes. Es por eso que se usa JNDI como capa por encima pues ofrece un acceso común a los recursos configurados.

La API JNDI  permite escribir código Java que realice operaciones sobre directorios. Es una API uniforme a todos los tipos de servicios de directorios. Es similar a JDBC.

Service Provider Interface (SPI) permite acceder al servicio de directorio específico de cada fabricante. Mapea código JNDI en operaciones específicas de directorios. Es un driver JNDI.

 Arquitectura JNDI

Un ejemplo sencillo

Vamos a configurar un pool de conexiones para una base de datos en el lado del servidor. A continuación se muestra cómo se usaría el API JNDI:

String jndiName = "jdbc/<alias>";
//Obtenemos el contexto inicial (dónde comienza el directorio de nombres)
InitialContext ctx = new InitialContext();
//Asignamos el recurso a un objeto de tipo DataSource (Binding)
DataSource ds = (DataSource) ctx.lookup(jndiName);
Connection conn = ds.getConnection();
// hacer algo con la conexión
conn.close();
ctx.close();


El código anterior funcionaría en todas las aplicaciones que tengamos desplegada en nuestro servidor web (en nuestro caso lo que es Tomcat) o servidor de aplicaciones. Se usa en todas las aplicaciones del servidor y solo lo configuramos una vez.

La configuración que hay que realizar en Tomcat es la siguiente: 
  1.  Modificar el fichero ../conf/server.xml  de Tomcat entre las etiquetas <GlobalNamingResources> y </GlobalNamingResources>
  2. <GlobalNamingResources>
    …
    <Resource name="jdbc/<alias>"
       auth="Container"
       type="oracle.jdbc.pool.OracleDataSource"
       driverClassName="oracle.jdbc.driver.OracleDriver"
       factory="oracle.jdbc.pool.OracleDataSourceFactory"
       url="jdbc:oracle:thin:@<host>:<port>:<sid>"
       [user=<user>]
       [password=<password>]
       maxActive="20"
       maxIdle="10"
       maxWait="-1" />
    …
    </GlobalNamingResources> 
    
    
    Estamos configurando una fuente de datos (dataSource) para poder acceder a una base de datos Oracle. Indicando al servidor que tenemos un recurso. A continuación indicamos a nuestras aplicaciones que pueden hacer uso del recurso definido en el servidor:
  3. Modificar el fichero /conf/context.xml entre las etiquetas <Context> y </Context> con lo siguiente:
  4. <Context>
    …
    <ResourceLink global="jdbc/<alias>" name="jdbc/<alias>" 
    type="oracle.jdbc.pool.OracleDataSource"/>
    …
    </Context> 
    
  5. Incluir el jar del conector jdbc a la base de datos en la carpeta lib del servidor Tomcat, no del proyecto. Y, muy importante, reiniciar el servidor.
spacer

Configurar Zend Framework en wamp, xammp, lamp o mamp


Os dejo en este post cómo se configuran los servidores XAMP, WAMP, LAMP o MAMP para trabajar con proyectos basados en Zend Framework. Como sabéis, lo que caracteriza a estos 4 entornos es que te integran de forma semi-automática PHP, APACHE y MySQL, pero ese es otro tema.

Bueno, vamos al grano, lo que hay que hacer es descargar Zend Server desde la página oficial de Zend Framework, a ser posible en una extensión que nos permita descomprimir la carpeta mejor que un ejecutable, por ejemplo en la versión linux. Si estamos entornos Windows podemos instalar el ejecutable y cuando finalicemos el proceso desinstalarlo. 

Una vez que lo hemos descargado, debemos ir a la carpeta de instalación de Zend Server, que suele tener la siguiente estructura: "Zend \ ZendServer \ share \ ZendFramework". Bien, dentro de esa última carpeta tenemos las dos carpetitas que tenemos que copiar en nuestros entorno "AMP", ya sea X,W,L o M. Estos dos directorios son "bin" y "library". 

Debemos ir a la carpeta "xampp \ php" (en mi caso es un XAMP). Allí creamos nuestra carpeta "zend", de forma que queda "xampp \ php \ zend" y dentro de esta ruta copiamos los dos directorios "bin" y "library".

Lo siguiente es configurar el php.ini para que sepa encontrar las librerías de Zend Framework. Para ello, buscamos la directiva:

include_path = ".;C:\xampp\php\PEAR"

Y añadimos al path la ruta de nuestras librerías Zend (la que hemos copiado), quedando así:

include_path = ".;C:\xampp\php\PEAR;C:\xampp\php\zend\library"

Ahora debemos guardar el documento y reiniciar Apache.

La carpeta "bin" que hemos copiado contiene la herramienta Zend Tool que como sabéis, sirve para crear proyectos o items de tipo Zend Framework. Si queréis poder invocarla desde el IDE de desarrollo o la línea de comandos debéis añadir la ruta de "zf.bat" o "zf.sh" dependiendo del entorno a la variable PATH de las variables de entorno del sistema operativo en el que estéis.

Eso es todo, muy fácil, suerte!
spacer

Nuevas etiquetas HTML 5

Buenas a tod@s,

Recientemente he comenzado algunos de los cursos de Microsoft Virtual Academy para aprender un poco sobre las tecnologías .NET. Uno de los cursos que he comenzado es el de Diseño de aplicaciones de Windows 8 en HTML 5. En uno de los módulos, concretamente en el quinto, me he emcontrado una de esas tablas resúmenes tan útiles para ver de un vistazo las nuevas etiquetas de HTML 5 y la es que han desaparecido.

Sin más os dejo la tabla, haced click en la imagen para verla más grande, espero que os sirva:


spacer