Páginas

30/12/14

JNDI datasource JUnit test JBoss.

JNDI datasource JUnit test.

JNDI datasource JUnit test JBoss.



Para poder utilizar JUnit en una clase en la cual hacemos una consulta a la base de datos y dicha consulta obtiene la conexión mediante JNDI con el datasource de JBoss 7 tenemos que enlazar ese datasource al InitialContext. Si vas a utilizar esto para hacer la clase "test" de JUnit tienes que hacer que el método donde se enlaza el datasource con el contexto inicial se ejecute primero con la anotación @BeforeClass. Aqui te dejo el codigo para eso:
@BeforeClass
 public static void setUpClass() throws Exception {
  try {
   System.setProperty(Context.INITIAL_CONTEXT_FACTORY,
     "org.apache.naming.java.javaURLContextFactory");
   System.setProperty(Context.URL_PKG_PREFIXES, "org.apache.naming");
   
   InitialContext initialContext = new InitialContext();
   initialContext.createSubcontext("java:jboss");
   initialContext.createSubcontext("java:jboss/datasources");
   // Reemplaza en nombre del datasource por el tuyo
   initialContext
     .createSubcontext("java:jboss/datasources/DataSourceDatoJava");

   OracleConnectionPoolDataSource poolDataSource = new OracleConnectionPoolDataSource();
   poolDataSource.setURL("jdbc:oracle:thin:@localhost:1521:");
   poolDataSource.setUser("datojava");// Tu usuario
   poolDataSource.setPassword("datojava"); // Tu contraseña

   initialContext.rebind("java:jboss/datasources/DataSourceDatoJava",
     poolDataSource);
  } catch (NamingException ex) {
   ex.printStackTrace();
  }
 }
 
Ya con este dato java podemos ejecutar nuestra clase test de JUnit.


Temas Relacionados:

29/12/14

ERROR. More than the maximum number of request parameters (get plus post)

ERROR. More than the maximum number of request parameters (get plus post) for a single request (512) were detected.

ERROR. More than the maximum number of request parameters (get plus post) for a single request (512) were detected.



ERROR. more than the maximum number of request parameters (get plus post) for a single request (512) were detected, este error se produce cuando estamos mandando en una aplicación web mas parámetros de los permitidos por default en JBoss, la solución a ese error es poner en el archivo de configuración del JBoss un parámetro llamado org.apache.tomcat.util.http.Parameters.MAX_COUNT, le vamos a poner de valor "2000" y así evitamos que se reproduzca de nuevo este error, tranquilos que esto no afecta el comportamiento de la aplicación no desesperes y soluciona ese pequeño bug, es bueno que al crear tu súper aplicación ya le pongas esta propiedad y evites posibles futuros errores, para solucionarlo vamos al archivo de configuración de nuestro JBoss que se encuentra en la siguiente ruta: tuJBoss>standalone>configuration>standalone.xml y vamos agregar esta propiedad justo después que termina la etiqueta "<extensions>"
</extensions> 
 

    

 

Con este dato java ya debería funcionar nuestro aplicativo, si te dice que 2000 es muy poco le pones mas. Depende de la aplicación.


Temas Relacionados:

27/12/14

JNDI Datasource Java JBoss. JDBC Tip.

Datasource (fuente de datos) en Java. JNDI JDBC Tip.

JNDI Datasource Java JBoss. JDBC Tip.



Una buena práctica de programación cuando estamos haciendo una aplicación web en Java es utilizar la api JNDI (Java Naming and Directory Interface), que es una API de java que nos permite buscar objetos mediante un nombre, eso quiere decir que podemos crear una fuente de datos (Datasource) en el cual vamos a declarar todo lo referente a nuestra conexión a la base de datos que vamos a utilizar, y mediante la API JNDI obtenemos la conexión para hacer nuestras consultas. Ok por si no te queda claro ahora te lo explico de otra manera con un breve ejemplo, estás en tu desarrollo de la aplicación web Java que corre en el servidor de aplicaciones JBoss, bueno ahora cuando quieres hacer una consulta a la base de datos primero tienes que conectarte a la misma mediante JDBC , obvio que si utilizamos este ejemplo en una aplicación web funcionara pero no es una buena práctica de programación ya que la aplicación web no se hace portable y aparte de eso si queremos hacer un cambio de un puerto, ip o el nombre del driver hay que hacerlo modificando el código, cuando sería una mejor practica hacerlo mediante JNDI y así cualquier cambio no implica hacer una modificación de código, aparte de eso todas las aplicaciones que corren en el mismo servidor de aplicaciones pueden utilizar el Datasource para conectarse a la base de datos. Imagina hacer una clase de conexión para cada aplicación que desarrollas y todas corren en el mismo servidor de aplicaciones, mejor práctica es hacerlo una sola vez y reutilizarlo en todas las aplicaciones que desarrollas.

17/12/14

Pruebas unitarias JUnit en Eclipse/JBoss Developer Studio. JUnit tutorial.

Test JUnit en Eclipse/JBoss Developer Studio. JUnit tutorial.

Pruebas unitarias JUnit en Eclipse/JBoss Developer Studio. JUnit tutorial.



JUnit Matchers Hamcrest Tutorial. Te presento el poderoso JUnit, para refrescarte un poco la mente te doy un breve concepto del mismo, JUnit es un framework que sirve para hacer pruebas unitarias de nuestras clases, te darás cuenta de que cuando estás haciendo un proyecto, para probar un método de una determinada clase tienes que llamarlo desde el aplicativo o desde otro método y después ver si el resultado que devuelve es el esperado, bueno aquí nace JUnit el cual nos ayuda a ahorrar muchísimo tiempo al implementar una "clase prueba" para nuestras pruebas unitarias. Dicho esto te comento que este pequeño tutorial está hecho con JUnit 4 y el JBoss Developer Studio que básicamente es lo mismo que eclipse, no te asustes si estas utilizando otro IDE, en casi todos los IDE's se trabaja de la misma manera y con este tuto podrías fácilmente aprender a utilizarlo en tu IDE, no tienes que instalar nada nuevo casi todas las últimas versiones de los IDE's traen el plugin de JUnit listo para usar. Comenzando desde 0 te pondre varios ejemplos, algunos nos daran problemas y otros no.

16/12/14

href nueva ventana/pestaña. HTML href new tab.

href nueva ventana/pestaña. HTML href new tab.

href nueva ventana/pestaña. HTML href new tab.



Un dato java muy util y rapido, cuando creamos un link en una pagina con el atributo
datojava
y queremos que se abra el link en una ventana/pestaña nueva lo que tenemos que agregar es la propiedad
target="_blank"
Asi quedaria nuestro atributo para que se abra el link en una nueva pestaña.
datojava
Tip util y facil.

11/12/14

Dos JBoss en la misma maquina. JBoss de prueba.

Tener dos JBoss en la misma máquina. Un JBoss aparte para pruebas.

Tener dos JBoss en la misma máquina. Un JBoss aparte para pruebas.



Cuando llegas a un nuevo trabajo ya tienen en tu maquina instalado todas las herramientas necesarias para que programes, los IDE'S que utilizan, las bases de datos, los gestores, etc. Cada vez que tienes un requerimiento al finalizar tienes que subirlo al control de versiones. Ahora en mi caso cuando no tengo ningún requerimiento o me sobra el tiempo hago algunas pruebas de algo que me interese en un proyecto aparte, o de repente cambio en archivo de configuración del JBoss standalone.xml o cualquier otra cosa que la prueba implique. Bueno al momento de hacer el commit al control de versiones a veces se nos pasa por alto que hicimos un cambio en dichos archivos y nos damos cuenta cuando nos mandan ese correo con varias observaciones y errores que tienen que ver con ese cambio, por eso hay que verificar antes de hacer commit que cambios son los que vas a subir con mucho cuidado. Después de esos errores me pregunte cómo hacer para instalar dos servidores de aplicaciones en la misma máquina o pc, en este caso 2 JBoss en la misma máquina. Cuál es el propósito de esto, que ya que obviamente esos proyectos del trabajo, y los proyectos de pruebas están en distintos Workspaces instalar un JBoss para ese WorkSpace de pruebas y dejar el del trabajo como esta para evitar posibles errores por descuido.

5/12/14

Crear un WorkSpace en Eclipse/JBoss Developer Studio. Tip.

Crear un WorkSpace en Eclipse/JBoss Developer Studio. Tip.

Crear un WorkSpace en Eclipse/JBoss Developer Studio. Tip.



Para crear un WorkSpace (Espacio de trabajo) en Eclipse/JBoss Developer Studio es sencillo, creo que para el programador junior es más complicada la palabra que lo que realmente significa. Primero hay que crear una carpeta en el pc, te aconsejo que esta carpeta la pongas en un sitio de tu computadora en donde solo vallas a tener cosas de programación, es bueno tratar de mantener un orden, después que tienes la ubicación creas la carpeta y le pones el nombre de WorkSpace - seguido del nombre de tu espacio de trabajo.

4/12/14

Cargar posición del scroll al hacer submit JSF, JavaScript. TIP.

Cargar posición del scroll al hacer submit JSF, JavaScript. TIP.

Cargar posición del scroll al hacer submit JSF. TIP.



Este Tip que les presento a continuación es muy útil de hecho es buena práctica que al crear nuevas páginas tengamos una plantilla con las funciones, tags, configuración básica, etc., que tendrán nuestras páginas, hay un problema que es fácil de solucionar, vamos a plantear el caso: creamos una página con varios formularios o un formulario grande el cual no logramos ver completamente sin utilizar el scroll, resulta que en la pagina hay varias peticiones al servidor para validar campos y cada vez que hacemos submit() se pierde la posición del scroll y la pagina se muestra desde el principio, ahora sabemos que es un poco tedioso ir de nuevo al campo donde se hizo la petición al servidor, para lograr obtener la posición de scroll y que cuando hagamos submit() la pagina permanezca en el mismo lugar y no al principio necesitamos una función en JavaScript sencilla. Bueno aquí les dejo las funciones para obtener la posición del scroll y cargar la posición al hacer submit:

Funciones JavaScript
function cargarScroll(){    
 var posición = window.name || 0;     
 window.scrollTo(0, posición);   
}
function obtenerScroll(){
 window.name = self.pageYOffset || (document.documentElement.scrollTop + document.body.scrollTop);
}
    

Dos funciones simples, ahora solo lo que falta es declararlas en la página de esta manera:

body
<body onload="cargarScroll();" onunload="obtenerScroll();">
    


Ahora bien ya podemos capturar la posición del scroll después de refrescar nuestra página. Un pequeño dato java para que lo uses en tus proyectos, indiferentemente de el framework que uses. Decir gracias es gratis :).