miércoles, 26 de septiembre de 2007

Parsear un fichero XML con javascript

Para poder parsear un fichero XML desde javascript tenemos que hacer:

var xmlDoc;
function loadXML(archivoXML) {



if (window.ActiveXObject) {
//--- Creo un nuevo objeto de la librería Microsoft.XMLDOM que es la que se encarga
//--- en Internet Explorer de 'parsear' un archivo XML.
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
data = archivoXML;//"http://google.es";//
xmlHttp.open("GET", data, false);
xmlHttp.send(archivoXML_2);
xmlDoc = xmlHttp.responseXML;
mostrarDatosIe();
} else {
if (document.implementation && document.implementation.createDocument) {
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.load(archivoXML);

xmlDoc.onload = mostrarDatosFx;
} else {
alert("Su navegador no puede soportar este script");
}
}
}

function mostrarDatosFx() {
var listaParcelas = xmlDoc.getElementsByTagName("Parcela");


document.formLicencias.mapa_pdf.value = xmlDoc.getElementsByTagName("LicenciaUrbanistica")[0].getElementsByTagName("Plano").item(0).textContent;
}
function mostrarDatosIe() {

var listaParcelas = xmlDoc.getElementsByTagName("Parcela");

document.formLicencias.mapa_pdf.value = xmlDoc.getElementsByTagName("LicenciaUrbanistica")[0].getElementsByTagName("Plano").item(0).text;
}

Variables Globales con TOMCAT

Para poder tener variables de configuración en un proyecto web con TOMCAT debemos hacer:
añadir los diferentes parámetros al fichero web.xml


dir_ficherosXML
xml/


y luego en los diferentes servlets que usemos:


public void init(ServletConfig config) throws ServletException {
super.init(config);
dir_real = config.getServletContext().getRealPath("/");
dir_ficherosXML = dir_real+
config.getServletContext().getInitParameter("dir_ficherosXML");
}


Con esto ya tenemos variables como por ejemplo la dirección de tal o cual directorio sin que tengamos que cambiar el código fuente cada vez que hagamos una nueva instalación.

martes, 8 de mayo de 2007

Instalación de un Oracle sobre Linux:

Los pasos que hay que seguir para la instalación de un servidor Oracle sobre una máquina Linux son:

1º.- Hacer espacio suficiente:

Para ello lo primero que debemos hacer es crear una nuava partición donde metamos la instalación y los datos de Oracle.
Si lo queremos hacer correctamente lo que deberiamos hacer es hacerlo por separado, pero dependerá del servidor que utilicemos y sus caracteristicas.

Para crear una nueva partición sobre Linux debemos utilizar el siguiente comando:

fdisk sdXXX

siendo sdXX el disco físico donde queremos realizar la partición, (para ver los discos disponibles podemos utilizar el comando df).
Una vez en fdisk podemos usar “m” para obtener la ayuda correspondiente, pero básicamente los pasos a seguir son:
a.- Crear la nueva partición (n).
b.- Asignarle un tipo (t).
c.- Escribir los datos en el sistema de ficheros (w).

Una vez creada la partición con fdisk debémos darle formato, para ello usamos la instrucción: mkfs con los siguientes parámetros:
mkfs –t ext3 /dev/ sdXXX1

Esto le dará formato al nuevo disco que hayamos creado, ahora solo nos quedará que se pueda montar de forma automática cada vez que arranquemos el sistema, para ello debemos añadir la siguiente línea al fichero fstab, que se encuentra en /etc.

/dev/ sdXXX1 / ext2 defaults 1 1


Una vez hecho esto ya tenemos el espacio necesario para la instalación de Oracle.


2º.- Bajamos Oracle Database.
Una vez que hemos hecho los prerrequisitos de espacio en disco duro, debemos asegurarnos que cumplimos con el resto de requisitos para ello podemos bajarnos de forma gratuita la última versión de Oracle desde la página de Oracle:

http://www.oracle.com/technology/software/products/database/oracle10g/index.html

3º.- Instalación del oracle:

Una vez descargado los archivos hay que seguir los pasos que se están en la documentación que viene con el cd.

Si seguimos todos los pasos y cumplimos los prerrequisitos no debería darnos problemas.

4º.- Automatizar el arranque de Oracle al iniciar el sistema:

Para debemos hacer lo siguiente:

a.- Modificar el fichero /etc/oratab para que tenga la siguiente forma:

# This file is used by ORACLE utilities. It is created by root.sh
# and updated by the Database Configuration Assistant when creating
# a database.

# A colon, ':', is used as the field terminator. A new line terminates
# the entry. Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME::
#
# The first and second fields are the system identifier and home
# directory of the database respectively. The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
*:/oracle/app/product/10.1.0/Db_1:N
#SIGC:/oracle/app/product/10.1.0/Db_1:N
SIGC:/oracle/app/product/10.1.0/Db_1:Y


Este fichero se genera durante la instalación de Oracle.

b.- Crearnos un fichero oracle en /etc/init.d con el siguiente contenido:

#!/bin/bash

#
# Run-level Startup script for the Oracle Instance and Listener
#
# chkconfig: 345 93 15
# description: Startup/Shutdown Oracle listener and instance



ORA_HOME="/oracle/app/oracle/product/10.1.0/db_1"
ORA_OWNR="oracle"

# if the executables do not exist -- display error

if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi

# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display

case "$1" in
start)
## Oracle listener and instance startup
echo -n "Starting Oracle: "
# start TNS listener
su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl start"
# start database
su - $ORA_OWNR -c $ORA_HOME/bin/dbstart
touch /var/lock/subsys/oracle
# Arrancamos el Oias
#echo -n "Starting Oracle Application Server: "
#su - $ORA_OWNR -c "./arranca_ias.sh"
echo "OK"
;;
stop)
# Paramos el Oias
#echo -n "Shutdown Oracle Application Server"
#su - $ORA_OWNR -c "./para_ias.sh"
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
# stop TNS listener
su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl stop"
# stop database
su - $ORA_OWNR -c $ORA_HOME/bin/dbshut
rm -f /var/lock/subsys/oracle
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 start|stop|restart|reload"
exit 1
esac
exit 0


Es muy importante la línea que se encuentra comentada al principio: # chkconfig: 345 93 15 porque va a ser la que determine los parámetros de arranque (345) y su prioridad (93 15) al arrancarlos o matarlos.

Para poder incluirlo dentro del arranque del sistema debemos ejecutar:
chkconfig --add oracle

Donde oracle es el fichero que nos hemos creado antes (/etc/init.d/oracle).

5º.- Configuración de las conexiones desde el exterior:
Para poder realizar las conexiones desde el exterior hay que modificar el fichero tnsnames.ora en el caso de que no lo hay hecho automáticamente para que tenga el siguiente formato:


# tnsnames.ora Network Configuration File: /oracle/app/product/10.1.0/Db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

SIGC= (DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=localhost.localdomain)
(PORT=1521)
)
)
(CONNECT_DATA=
(SID=sigc)
(SERVER=DEDICATED)
)
)

#EXTPROC_CONNECTION_DATA =
# (DESCRIPTION =
# (ADDRESS_LIST =
# (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
# )
# (CONNECT_DATA =
# (SID = PLSExtProc)
# (PRESENTATION = RO)
# )
# )





Corolario: Comandos de Oracle

emctl status dbconsole  nos muestra el estado de la consola de oracle, pero debemos tenerlo apagado por defecto porque consume muchos recursos.

lsnrctl  listener de oracle, que es donde se configura el acceso desde la red de nuestro servidor, para que funcione, por derfecto tiene un fichero de configuración llamado listener.ora donde se pueden configurar las restricciones de acceso a nuestro servidor, nosostros en principio simplemente lo debemos quitar.

sqlplus  programa de oracle que nos permite el acceso a la base de datos con sql, también desde aquí podemos arrancar y parar las difernetes instancias de la Base de Datos mediante shut inmediate y startup.
Si queremos entrar como dba debemos ejecutar: <>

dbca Data Base Control Administration, sirve para crear/modificar/borrar instancias de una Base de Datos.

martes, 24 de abril de 2007

Formateo de Tablas con Scroll y fileteado de filas

Para poder dar un aspecto con scroll y fileteado a nuestras tablas tendremos que hacer lo siguiente:

  • Parte CSS:





  • Parte Javascript:


martes, 27 de marzo de 2007

Cambio de estados en javascript

Este código sirve para establecer los diferentes estados de una barra de herramientas.

Pero no solo eso sino que nos puede servir como introducción para el manejo de eventos de Javascript.


La parte de javascript seía:

// Función asociada a un evento vacio
var doNothing = function () {
return true;
};
// Número de Imagenes o botones que dispone la botonera (se Incia en 1)
var _numButtons;
/** Inicializa la botonera
// Para ello se debe introducir el numero de las diferentes imagenes que
// se van a utilizar como botonera.
// las imagenes deben ser identificados por id="ImageX"
// donde X es el número de la imagen (empezando por 1)
**/
function initButtonTool(_num) {
_numButtons = _num;
var x;
try {
for (i = 1; i <= _numButtons; i++) {
x = document.getElementById("Image" + i);
// Firefox
if (x.addEventListener) {
x.addEventListener("mouseover", buttonIn, true);
x.addEventListener("mouseout", buttonOut, true);
x.addEventListener("click", buttonClick, true);
}
// IE
if (x.attachEvent) {
x.attachEvent("onmouseover", buttonIn);
x.attachEvent("onmouseout", buttonOut);
x.attachEvent("onclick", buttonClick);
}
}
}
catch (e) {
alert(e);
}
}
/**
Función asociada al evento que se produce cuando el
puntero del ratón entra en la imagen
**/
function buttonIn() {
try {

if (/MSIE/.test(navigator.userAgent)) {
_this = event.srcElement;
} else {
_this = this;
}
img = _this.src;
if ((img.search("_active") == -1) && (img.search("_off") == -1)) {
_this.src = img.replace(".gif", "_on.gif");
}
}
catch (e) {
alert(e);
}
}
/**
Función asociada al evento que se produce cuando el
puntero del ratón sale de la imagen
**/
function buttonOut() {
var img;
try {
if (/MSIE/.test(navigator.userAgent)) {
_this = event.srcElement;
} else {
_this = this;
}
img = _this.src;
if ((img.search("_active") == -1) && (img.search("_off") == -1)) {
_this.src = img.replace("_on.gif", ".gif");
}
}
catch (e) {
alert(e);
}
}
/**
Función asociada al evento que se produce cuando el
puntero del ratón pulsa la imagen
**/
function buttonClick() {
var img;
var img_old;
var elemento;
try {

if (/MSIE/.test(navigator.userAgent)) {
_this = event.srcElement;
} else {
_this = this;
}
img = _this.src;

for (var i = 1; i <= _numButtons; i++) {
if (/MSIE/.test(navigator.userAgent)) {

elemento = document.getElementById("Image" + i);
}else{
elemento = document.getElementById("Image" + i);
}
if (elemento == _this) {

if (img.search("_on.gif") != -1) {
elemento.src = img.replace("_on.gif", "_active.gif");
}
// Firefox
if (elemento.addEventListener) {
elemento.addEventListener("mouseout", doNothing, false);
}
// IE
if (elemento.attachEvent) {
elemento.attachEvent("onmouseout", doNothing);
}
} else {

img_old = elemento.src;
if (img_old.search("_active.gif") != -1) {
elemento.src = img_old.replace("_active.gif", ".gif");
}
}
}
}
catch (e) {
alert(e);
}
}





Para más información puede consultar también:

http://www.anieto2k.com/2006/10/16/gestion-de-eventos-en-javascript/

http://www.elcodigo.com/tutoriales/javascript/javascript5.html



viernes, 23 de marzo de 2007

INSTALAR Y CONFIGURAR JAVA EN REDHAT

Si no hay opción de instalar java a través de los repositorios oficiales de nuestra distribución, que sería la opción recomendada,
también es posible instalar java de forma manual.

Lo primero es descargar de http://java.sun.com la versión de java que queramos utilizar. En el caso de RedHat es
siempre conveniente descargar la versión que acaba con extensión rpm.bin, ya que de esta forma, podremos instalar
java con el comando rpm -i nombre_de_la_version_de_java.rpm. Una vez descargado el archivo cambiaremos los permisos
con chmod +x nombre_de_la_version_de_java.rpm.bin y luego lo ejecutamos ./nombre_de_la_version_de_java.rpm.bin, se generará
un archivo nombre_de_la_version_de_java.rpm, ejecutamos entonces rpm -i nombre_de_la_version_de_java.rpm y tendremos java instalado.
Normalmente estará en /usr/java/nombre_de_la_version_de_java/. Si no está aquí podemos ejecutar como root updatedb y luego hacer un
locate /bin/javac, para ver el directorio donde está java instalado.

Ahora ya está java instalado, pero si ejecutamos java nos saldrá esto:

libgcj-java-placeholder.sh

This script is a placeholder for the /usr/bin/java
master link required by jpackage.org conventions. libgcj's
rmiregistry, rmic and jar tools are now slave symlinks to these
masters, and are managed by the alternatives(8) system.

...

Esta no es la versión de java que necesitamos, para configurarlo lo mejor (tal y como dice el libgcj-java-placeholder.sh) es utilizar alternatives.
Alternatives nos permite tener distintas versiones de un mismo componente e intercambiar entre ellas de forma transparente, sin tocar archivos
de configuración o paths:

[root@equipo /]# update-alternatives
versiones alternativas 1.3.11 - Copyright (C) 2001 Red Hat, Inc.
Este programa puede que sea libremente distribuido bajo los términos de la
licencia pública de GNU.
uso: alternativas --install <link> <name> <path> <priority>
[--initscript <service>]
[--slave <link> <name> <path>]*
alternatives --remove <name> <path>
alternatives --auto <name>
alternatives --config <name>
alternatives --display <name>
alternatives --set <name> <path>

opciones comunes: --verbose --test --help --usage --version
--altdir <directory> --admindir <directory>

Lo que tenemos que hacer es añadir (--install) el nuevo java y para ello necesitamos saber la ruta del ejecutable de java:

[root@equipo /]# locate java | grep bin/java
/usr/sbin/javaconfig
/usr/bin/java
/usr/bin/javac
/usr/bin/java_cup
/usr/bin/java_cup-10.11
/usr/java/j2sdk1.4.2_13/bin/java-rmi.cgi
/usr/java/j2sdk1.4.2_13/bin/java
/usr/java/j2sdk1.4.2_13/bin/javac
/usr/java/j2sdk1.4.2_13/bin/javadoc
/usr/java/j2sdk1.4.2_13/bin/javah
/usr/java/j2sdk1.4.2_13/bin/javap
/usr/java/j2sdk1.4.2_13/jre/bin/java
/usr/java/j2sdk1.4.2_13/jre/bin/java_vm

El que nos interesa es /usr/java/j2sdk1.4.2_13/bin/java. Ahora simplemente hay que ejecutar el comando de instalación en el que le
decimos el nombre del enlace simbólico (/usr/bin/java) el nombre del paquete (java), la ruta del ejecutable java y la prioridad (300 por
defecto):

[root@equipo /]# update-alternatives --install /usr/bin/java java /usr/java/j2sdk1.4.2_13/bin/java 300

Para terminar comprobamos que ahora java utiliza el ejecutable que necesitamos y hacemos un java -version:

[root@equipo /]# update-alternatives --config java

Hay 2 programas que proporcionan 'java'.

Selección Comando
-----------------------------------------------
1 /usr/share/java/libgcj-java-placeholder.sh
*+ 2 /usr/java/j2sdk1.4.2_13/bin/java

Presione Intro para mantener la selección actual[+], o escriba el número de la selección:

[root@equipo /]# java -version
java version "1.4.2_13"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_13-b06)
Java HotSpot(TM) Client VM (build 1.4.2_13-b06, mixed mode)
[root@equipo /]#

Más información en:
http://www.yiluda.net/manual/linux/man/alternatives.html
http://blog.stevenkroon.com/2006/08/29/debian-update-alternatives

jueves, 22 de marzo de 2007

Como crear un sinonimo publico en Oracle

Cuando queremos poder ver una tabla de oracle desde diferentes esquemas necesitimos crearnos un sinónimo público.

Para poder crear un sinónimo público debemos hacer:

  • Crear el Sinónimo:

create [or replace] [public] synonym [schema .] synonym_name
for [schema .] object_name [@ dblink];

ejemplo:

CREATE PUBLIC SYNONYM sinonimo_publico FOR tabla

  • Dar permiso de aceso al esquema de destino:
para ello debemos ejecutar, desde el esquema del usuario origen:

GRANT SELECT, UPDATE, DELETE, INSERT ON nombre _tabla for usuario (esquema)


Con esto debería funcionar sin problemas.

Paginas Interesantes

Código Fuente:

Esta es una recopilación de páginas donde se pueden encontrar código ya hecho de forma rápido y fácil. Pueden llegar a ser de gran ayuda.

Cualquier Código:



Javascript:

viernes, 16 de marzo de 2007

Inicial



Pagina personal con comentarios, trabajo y experiencias.

Ya iremos rellenandola con diferentes cosas.