domingo, 23 de diciembre de 2012

Feliz Navidad.

Aunque este blog lo creé en 2011, no fue hasta julio de 2012 que me lo tomé un poco más en serio. Al principio lo iba a usar como blog de notas personal, con acceso privado para escribir chuletillas que uso de vez en cuando en el trabajo, pero por motivos que no vienen al caso decidí hacerlo público y cambiar un poco el tipo de contenidos.

No fue hasta octubre (no podría jurarlo) que incorporé estadísticas de google, así que los datos no son del todo fiables. Aún así ha sido un placer recibir unas 500 visitas estos meses y comprobar que los códigos que escribo han servido para facilitar el trabajo al visitante.

Estadísticas del año 2012 por países.

Algunos de los post como las series de OpenETL han sido fruto del trabajo de meses de investigación sobre la librería, viendo el código por dentro, haciendo pruebas, etc. Otros en cambio han sido resultados de búsquedas de bing y google sobre temas en concreto que yo después de leer cientos de post he tratado de ordenar. En estos casos siempre he citado, y lo seguiré haciendo, las referencias.

Como he comentado, durante estos meses he tenido unas 500 visitas. La mayoría han sido españolas, aunque otras han venido de países como México, Alemania, EEUU, etc. Cuatro navegadores han sido los usados para ver el blog. Me sorprende que Chrome esté en cabeza de navegadores usados, creo que Google ha hecho un buen marketing.

Estadísticas del año 2012 por navegador.

A todos los visitantes del blog, os deseo que paséis unas muy felices fiestas. Espero veros por aquí el año que viene.

Feliz navidad.

lunes, 17 de diciembre de 2012

Instalando el cliente VPN de Cisco en windows 7.

En algunos windows 7 el cliente de cisco se instala correctamente, pero después no permite realizar ninguna conexión.

En la propia página de cisco encontré la solución: es necesario aplicar las actalizaciones de DNE. El problema es que la instalación de estas dan error el error:

Error 27850: unable to manage network component

Así que una vez más, google al rescate.

El proceso para instalar el cliente quedaría de la siguiente forma:

Primero hay que modificar el registro de windows cambiando el valor de HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\MaxNumFilters desde 8 a 14 (en decimal).

Después hay que instalar el Citrix DNE update . Se descarga desde:

  • ftp://files.citrix.com/dneupdate.msi for 32-bit
  • ftp://files.citrix.com/dneupdate64.msi for 64-bit

La información en la propia página de Citrix.

Por último se instala el cliente, que se descarga también de Citrix (en este caso hace falta crearse una cuenta).

Saludos.

lunes, 10 de diciembre de 2012

Problemas con WSGEN. Métodos duplicados en el wsdl

Hoy al generar un ws con wsgen, el wsdl me ha dado el warning:

cvc-identity-constraint.4.2.2: Duplicate key value [getCuentas] declared for identity constraint "message" of element 
 "definitions".

Lo que pasaba es que en el archivo wsdl, uno de los métodos me aparecía duplicado. Este problema estaba causado porque había definido la interfaz en la forma:

 @WebService(targetNamespace = "http://xxx.xxx.com", name = "XxxxWSInterface")
@SOAPBinding(style = SOAPBinding.Style.RPC, use = SOAPBinding.Use.LITERAL)
public interface BcieWSInterface {

Casualmente me fijé que el método que salía por duplicado era el que devolvía Tipo_dato. En realidad no sé porqué estaba ese tipo declarado en la interfaz, creo que dejé a eclipse arreglar algo y me lo añadió.

Al arreglar la interfaz y dejarla sin el Tipo_dato

 @WebService(targetNamespace = "http://xxx.xxx.com", name = "XxxxWSInterface")
@SOAPBinding(style = SOAPBinding.Style.RPC, use = SOAPBinding.Use.LITERAL)
public interface BcieWSInterface {

y volver a generar se creó el wsdl correctamente :D En fin, una cagada mia, que menos mal que resolví en poco tiempo.

Saludos

sábado, 8 de diciembre de 2012

Importando un DMP en Oracle 11g

Ayer perdí mucho tiempo intentando importar un dmp de Oracle 11g. Probando distintas opciones obtenía errores como

imp-00038: could not convert to environment character set's handle
IMP-00000: Import terminated unsuccessfully

o similares. Lo malo de esto es que en muchos post se explicaba la teoría y el porqué falla, pero nadie publicaba una solución clara. Después de muchas consultas pude dar con dicha solución.


Pasos

  1. Colocar el DMP en la ruta de la bd. En mi caso: C:\oracle\admin\test\dpdump
  2. Ejecutar:
    • impdp 'SYS AS SYSDBA' file=MYDAT01.DMP full=yes
      
    • Si no se tiene creado el usuario de oracle, o el tablespace empieza a fallar. En mi caso faltaba el tablespace:
      CREATE TABLESPACE MY_TS_DATA
        DATAFILE 'C:\oracle\admin\test\TS_DATA.dbf' SIZE 400M
        AUTOEXTEND ON NEXT 200K MAXSIZE 800M; 
      
  3. No olvidar que hay que logarse con el usuario de la exportación.

Información asociada

Aquí encontré la solución.

Este post es muy interesante.

Eso es todo. Al final la clave estaba en el 'SYS AS SYSDBA', ya que yo me logaba con otro usuario. Saludos

jueves, 6 de diciembre de 2012

json.parse: bad control character in string literal

Hoy haciendo una aplicación con ajax el navegador me ha dado un error "json.parse: bad control character in string literal".
Imagen de error con el firebug

El error lo daba la llamada
json = $.parseJSON(string);
El problema era que yo estaba generando un objeto json desde java dentro de una stringbuilder, y una cadena contenía el carácter retorno de carro "\n". Buscando por internet encontré cientos de post que comentaban el problema y hacían perder el tiempo, pues daban soluciones que no funcionaban. En este en concreto se habla del api de json y se especifica que otros caracteres pueden fallar. Al final la solución era crear un objeto json desde java. Este es el trozo de código final en la jsp que llama el js.
Map obj = new HashMap();
obj.put("id", new Long(id_mensaje));
obj.put("cuerpo",mensaje.getCuerpo());
obj.put("fechaRecibido",MensajesUtil.formatDate(mensaje.getFechaEnvio()));
obj.put("usuarioOrigen",MensajesUtil.getName(mensaje.getUsuarioOrigen(), cms));
obj.put("usuarioOrigenId",mensaje.getUsuarioOrigen());
String jsonText = org.json.simple.JSONValue.toJSONString(obj);
out.println(jsonText);
Saludos.
Related Posts Plugin for WordPress, Blogger...