Posts tagged ‘Trucos’

Eliminar caché de acceso a unidades de red en Windows XP

Cuando accedemos a un recurso compartido o unidad de red en Windows XP (por ejemplo desde ejecutar en el menú de inicio o desde la barra de direcciones del explorador de Windows), nos pregunta el usuario y la contraseña. El usuario que introducimos se queda cacheado de forma que las siguientes veces que accedemos ya no nos lo vuelve a preguntar.

Esto que es cómodo en principio, hay algunas ocasiones en que no es lo deseable. Por ejemplo si queremos ver si otro usuario tiene acceso.

Yo al final la manera más cómoda que he encontrado para eliminar esa caché es a través de la línea de comandos.

Para mostrar las unidades a las que estamos conectados:

net use

net use

Para eliminar la caché de una de las entradas:

net use \\unidad /delete
net use \\ip /delete

net use delete

También podemos eliminar todas las entradas:

net use * /delete

Podemos comprobar que las entradas se han eliminado.

net use

Ahora si volvemos a intentar entrar en el recurso compartido nos volverá a solicitar el usuario y la contraseña.

Pongo el enlace a la ayuda completa del comando net use (en inglés Inglés).

26 abril 2013 at 7:38 pm 1 comentario

Url de conexión JDBC a Oracle RAC

Recientemente uno de nuestros entornos ha migrado a Oracle RAC y hemos tenido el problemilla que os detallo a continuación.

Parece ser que en Oracle RAC la URL de conexión a la BBDD mediante JDBC no permite una de sus versiones clásicas. Así por ejemplo una conexión del estilo:

jdbc:oracle:thin:@<HOST>:1521:<SID>

no funciona saltando la siguiente excepción:

java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
...

Para solucionarlo podemos utilizar la otra forma corta de url que aparece por ejemplo en este listado de formatos de conexión JDBC (en inglés ):

jdbc:oracle:thin:@//<HOST>:1521/<SID>

También podemos utilizar una URL en formato largo:

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<HOST>(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=<SID>)))

Si tenemos varios servidores deberíamos poner una URL en el siguiente formato:

jdbc:oracle:thin:@<HOST1>^<HOST2>:1521:<SID>

jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)
(ADDRESS=(PROTOCOL=TCP)(HOST=<HOST1>) (PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=<HOST2>) (PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=<SID>)))

aunque esto último no lo he podrido probar lo he visto en el JUG de Padova (en inglés ).

Espero que le pueda servir de ayuda a alguien.

29 abril 2010 at 11:45 am 3 comentarios

Redondeando en Java

Si os habéis encontrado alguna vez con la necesidad de redondear un número en Java, habréis visto que no existe un método directo para hacerlo

A veces se hace multiplicando pasando a entero y dividiendo, pero no es una forma fiable.

La forma de hacerlo sería mediante el método setScale de la clase java.math.BigDecimal:


public static double round(double value, int decimalDigits) {
	BigDecimal bd = new BigDecimal(value);
	bd = bd.setScale(decimalDigits, BigDecimal.ROUND_HALF_UP);
	return bd.doubleValue();
}

Tenemos varias opciones a la hora de redondear que podemos ver en la documentación de BigDecimal.

Espero que os ayude.

27 febrero 2010 at 12:54 am Deja un comentario

Alerta de contenido no seguro en Internet Explorer

Estábamos desplegando una aplicación en un servidor seguro y al probar con Internet Explorer recibíamos en todas las páginas el siguiente mensaje.

Este mensaje indica que en la respuesta a nuestra petición segura https se acceden algunas partes mediante el protocolo no seguro http. Esto es un riesgo de seguridad y por eso nos alerta.

Tras varias pruebas intentando localizar el contenido no seguro di con una gran entrada de Eric Lawrence sobre el tema del contenido no seguro ( en inglés) que me ayudó a solucionar el problema.

Por un lado desde el punto de vista del navegador podemos hacer que no nos aparezca la ventanita. Evidentemente no es la solución óptima el obligar a que el navegador no nos muestre un aviso de seguridad, pero para un aprieto (una demo por ejemplo) nos puede ayudar. Para ello abrimos las opciones del navegador (“Herramientas->Opciones de Internet”) y vamos a la pestaña de “Seguridad”. En la parte de “Internet” pulsamos “Nivel personalizado…” y buscamos la opción de “Mostrar contenido mixto”. Cambiamos de “Preguntar” a “Habilitar”.

Como desarrolladores debemos preocuparnos de que si nuestra aplicación va a ejecutarse bajo https nuestras páginas no llamen a contenido no cifrado. Para descubrir si hacemos peticiones http podemos utilizar el Web Developer para Firefox o una buena herramienta que también descubrí gracias al post mencionado anteriormente como es Fiddler.

En nuestro caso y tras ver que no hacíamos ninguna llamada http descubrimos que lo que ocurría es la posibilidad que señala Eric en su sitio. Parece ser que Internet Explorer marca como contenido no seguro una llamada a JavaScript del estilo:

<br />
&lt;script type=&quot;text/javascript&quot; id=&quot;contentloadtag&quot; src=&quot;javascript:void(0)&quot; &gt;<br />

Con eliminar el parámetro src se solucionará el problema. Una de las librerías JavaScript que utilizábamos tenía una llamada de ese tipo.

Espero que os sea útil.

15 enero 2010 at 9:06 pm 2 comentarios

Error en la comparación de String con la librería de tags de Struts2

Os voy a comentar un pequeño error que nos puede descolocar un poco cuando tratamos de comparar cadenas mediante la librería de etiquetas de Struts2 en nuestras páginas JSP.

Si hacemos una comparación con Strings al estilo de:

<s:if test="propiedad == 'SI'">
  <div>Mostrar texto</div>
</s:if>

obtendremos el resultado esperado (mostrará el texto si nuestra propiedad vale “SI”), pero si la comparación es:

<s:if test="propiedad == 'S'">
 <div>Mostrar texto</div>
</s:if>

veremos que aunque nuestra propiedad valga “S” no aparece el texto. Es decir, que cuando hacemos comparaciones de Strings de un sólo carácter nos falla. La responsable es la librería OGNL que evalúa las expresiones ya que al encontrar se un sólo carácter lo toma como un tipo Char y no un String.

Para solucionarlo nos basta cambiar las comillas:

<s:if test='propiedad == "S"'>
  <div>Mostrar texto</div>
</s:if>

o bien escapar las comillas dobles:

<s:if test="propiedad == \"S\"">
  <div>Mostrar texto</div>
</s:if>

Espero que le pueda servir a alguien.

17 diciembre 2009 at 11:12 am 5 comentarios

Añadir jars de un directorio al classpath

Gracias a esta entrada en el blog de Torsten Curdt descubro una interesante característica que desconocía de Java, eso sí a partir de su versión 1.6.

Todos los que llevamos un tiempo en Java nos hemos encontrado alguna vez con lo tedioso que puede ser el añadir todas la dependencias (normalmente en jars) de nuestro proyecto al classpath a la hora de ejecutarlo. Bien porque son muchos, bien porque en su nombre incluyen su versión o por algún otro motivo.

En el parámetro classpath del comando java (o javaw) se podían añadir directorios de clases (java -classpath classes org.tcymu.MiClase) o un jar determinado (java -classpath lib/dependencia.jar org.tcymu.MiClase) o una lista de ambas combinaciones separadas por “:” (dos puntos).

Pues resulta que a partir de Java 1.6 se pueden añadir comodines a dicho classpath, así para añadir todos los jars de un directorio determinado utilizaríamos:

java -classpath classes:lib/* org.tcymu.MiClase

Sin duda puede ser muy beneficioso. Eso sí, debemos cuidar aún más si cabe los jars que añadimos como dependencias, ya que perdemos control sobre el orden en que se van leyendo los jars, por lo que si existen clases duplicadas podemos tener problemas.

Espero que os sea de utilidad.

11 diciembre 2008 at 6:08 pm 1 comentario

Instalando Hudson sobre Tomcat en Ubuntu 8.04

En esta pequeña entrada voy a comentar los retoques que he tenido que hacer para conseguir instalar Hudson sobre Tomcat en mi XUbuntu 8.04 (estoy seguro de que en una Ubuntu es igual).
Hudson

Para empezar me descargué el war de la web de Hudson e instalé Tomcat a través de Synaptic (la versión que instala es la 5.5).

Quería desplegar Hudson a través de la aplicación de manager que viene con Tomcat, por lo que añadí un usuario con rol admin en /etc/tomcat5.5/tomcat-users.xml.

Entré en http://server:8180/manager/html (el puerto 8180 es con el que se ha instalado por defecto) y a través del formulario intenté desplegar el war (en la parte de “deploy” y “select war file to deploy”). Una rápida búsqueda en Google me llevó al problema (Inglés en inglés) y a la solución (Inglésen inglés): añadí al final de /etc/default/tomcat5.5:

TOMCAT5_SECURITY=no

Tras hacer esto (y tras reiniciar Tomcat como tras cada paso) Hudson se desplegó correctamente. Ahora sólo quedaba apuntar mi navegador a http://server:8180/hudson/ y esperar a que Hudson terminara su configuración. Pero de nuevo apareció otro error, en este caso de permisos. La solución estaba en el mismo lugar que la anterior, y esto fue lo que hice:

  • Cree el directorio /home/hudson y le puse de propietario tomcat55:nogroup el usuario con el que corre Tomcat por defecto. Además le di permisos rwxr-xr-x.
  • Edité el script para lanzar Tomcat (/etc/init.d/tomcat5.5) añadiendo en la parte que se define JAVA_OPTS: -DHUDSON_HOME=/home/hudson

Tras el último reinico, ¡por fin se terminó la instalación!. Ya podemos ver la página principal de Hudson.

hudson_3_640

Un poco vacía, pero ya la iremos llenando… ¿verdad?

10 noviembre 2008 at 9:25 pm 5 comentarios

Entradas antiguas


Mi perfil

View Miguel Orbegozo's profile on LinkedIn

Feedjit

Feeds

Otros…

BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog

Bitacoras.com

Add to Technorati Favorites