miércoles, 1 de diciembre de 2010

Aprobado el examen SCBCD 5 !

Bueno, despues de mucho tiempo de escribir nada en el blog, por fin me estoy desocupando de mi trabajo, termine de estudiar para la certificacion de Oracle SCBCD 5 y logre pasar el examen, com esta ya tengo tres en mi CV!

Ahora estoy esperando a que liberen las nuevas certificaciones de Oracle para la version 6 de JEE!

Saludos.

miércoles, 12 de mayo de 2010

Uso de Rangos en Groovy

Uso de Rangos en Groovy

Para definir un rango se usa .., por ejemplo

10..20

un rango del 10 hasta el 20.

Para que el 20 sean exlusivo se debe definir con el menor que, por ejemplo

10..<20

un rango del 10 hasta el 19

A continuacion unos ejemplos


if ( 1 in 3..5 ) {
println "Si esta dentro del rango"
} else {
println "No esta dentro del rango"
}
//No esta dentro del rango



for (i in 1..4) {
print "${i} ";
}
//1 2 3 4



println ""
for (i in 1..<4) {
print "${i} ";
}
//1 2 3



println ""
for (a in 'a'..'g') {
print "${a} "
}
//a b c d e f g



println ""
(1..10).each(){ a->
print "${a} "
}
//1 2 3 4 5 6 7 8 9 10



println ""
5.each () {
print "${it}"
}
//5



println ""
switch (2) {
case 1..4:
print "Dentro del rango 1-4"
break
case 5..10:
print "Dentro del rango 5-10"
break
}
//Dentro del rango 1-4

Si ejecutamos el programa la salida es

No esta dentro del rango
1 2 3 4
1 2 3
a b c d e f g
1 2 3 4 5 6 7 8 9 10
5
Dentro del rango 1-4

Suerte.

lunes, 3 de mayo de 2010

Uso de env-entry de EJB 3.0

Uso de env-entry de EJB 3.0

Con este ejercicio se muestra el uso de la inyeccion de una cadena desde el XML de EJB 3.0. Desde el XML se inyecta la cadena Dracof a la propiedad nombreCliente del EJB Stateless.

Primero se define la clase SaludoBean como un Stateless con nombre InyeccionSaludoBean y JNDI ejb/InyeccionSaludoBean.


@Stateless(name="InyeccionSaludoBean", mappedName="ejb/InyeccionSaludoBean")
public class SaludoBean implements Saludo {

@Resource(name="nombreCliente")
private String nombreCliente;

@Override
public void imprimeSaludo() {
if (nombreCliente == null) {
System.out.println("El nombreCliente es NULL");
} else {
System.out.println("El nombreCliente NO! es NULL");
}
System.out.println("Dentro del metodo imprimeSaludo " + nombreCliente);
}
}

Se observa que el EJB define la propiedad nombreCliente el cual se le inyectara el recurso con nombre nombreCliente.

El recurso nombreCliente sera definido en el XML ejb-jar-xml como sigue

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
<display-name>Inyeccion</display-name>

<enterprise-beans>
<session>
<ejb-name>InyeccionSaludoBean</ejb-name>
<env-entry>
<env-entry-name>nombreCliente</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>Dracof</env-entry-value>
</env-entry>
</session>
</enterprise-beans>
</ejb-jar>

Dentro del XML se define el nombre de la entrada de entorno (env-entry-name) su tipo (env-entry-type) y valor (env-entry-value).

Se crea un cliente para ejecutar el metodo imprimeSaludo() del Stateless.

Nota: Para este ejercicio el jar del EJB se deploya en un WebLogic 10
 
public static void main(String[] args) {
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
props.put(Context.PROVIDER_URL, "t3://localhost:7030");

try{
Context context = new InitialContext(props);
Object obj = context.lookup("ejb.InyeccionSaludoBean#org.dracof.inyeccion.Saludo");
Saludo saludo = (Saludo) PortableRemoteObject.narrow(obj, Saludo.class);

saludo.imprimeSaludo();
} catch (Exception ex) {
ex.printStackTrace();
}
}


El nombreCliente NO! es NULL
Dentro del metodo imprimeSaludo Dracof

Suerte.

domingo, 21 de febrero de 2010

Passwords en Oracle 11g

Despues de una instalacion exitosa de Oracle 11g en W7, intente entrar a la consola de administracion con

https://localhost:1158/em/

antes para usar el password SYS abri una session SQL PLUS usando el comando

sqlplus / as sysdba

y ejecutando el siguiente alter al usuario SYS

alter user SYS identified by "manager";



Con esto ya puedo usar Oracle 11g y hacer uso de la BD.

Suerte.

miércoles, 13 de enero de 2010

Atributo method del action en Struts2

Atributo method del action en Struts2

En el primer ejemplo de struts2 (PrimerProgramaStruts2) se muestra la accion org.dracof.struts2.actions.MiAccion con alias miAccion, cuando se realice el llamado a esta por default struts buscara el metodo public String execute(), si no lo encuentra lanza una excepcion diciendo que El recurso requerido (No result defined for action org.dracof.struts2.actions.MiAccion and result success) no esta disponible.

Para escribir multiples metodos dentro del Action se puede usar el atributo method del elemento action de nuestro xml, quedando


<struts>
<package name="default" extends="struts-default" namespace="/">
<action name="miAccion" method="otroMetodo" class="org.dracof.struts2.actions.MiAccion">
<result name="success">resultado.jsp</result>
</action>
</package>
</struts>


Se modifica el nombre del metodo execute por otroMetodo de la clase MiAccion y se manda el mensaje ‘Pasando por el metodo otroMetodo de MiAccion’
Quedando la clase como sigue

public class MiAccion {
public String otroMetodo() throws Exception {
System.out.println("Pasando por el metodo otroMetodo de MiAccion!");
return "success";
}
}

Con esto cada vez que se llame a miAccion se ejecutara el metodo otroMetodo.

Si probamos el ejercicio velos la salida a consola


Descargar war MethodAction.war

Descargar proyecto MethodAction.zipwar

Suerte.