jueves, octubre 14, 2010

OpenEtna y el driver msm_hw3d 3D

He estado estos dias tratando de migrar a un kernel 2.6.29 el nuevo driver msm_hw3d con algunos resultados...

Tuve que modificar del repositorio git de openetna los archivos



Y todo funciona a medias... el driver necesita 3t tipos de memorias SMI, EBI y RES.... marca un error al montar la memoria EBI... asumo que la colocación de la memoria de la GPU1 es dinamica y debe ser antes de la inicializacion del driver... por que el hw3d toma la memoria EBI del segmento de memoria de la GPU1...

IDEAS

Hacer el direccionamiento EBI estatico aunque solo funcione con mi dispositivo...
Realizar la colocación de la memoria de la GPU1 antes de la inicializacion del driver
Probar deshabilitando el soporte de EBI2
Probar cambiando la memoria EBI1 a EBI2

NOTAS

Como aun soy medio noob en esto del kernel Android tengo que flashear mi telefono cada vez que quiero probar algo... imagino que debe haber una manera de simularlo... pero aun no la descubro...

miércoles, mayo 19, 2010

Consumir WebServices NuSoap desde Java con Axis2

Bueno.... hoy me toco pelear de nuevo contra las malignas fuerzas de los frameworks no estandarizados... el enemigo era NuSoap.

NuSoap es una herramienta que sirve para crear y consumir servicios web desde PHP.... escucharon bien... PHP!!!

Y pues... como era de esperarse hace cosas raras... genera en webservices estilo RPC codificados... y pues... ya desde ahi nuestro buen amigo JAX-WS no funciona... hay que volver al temible JAX-RPC

Yo no le se muy bien al JAX-RPC... he tenido experiencias traumaticas.... nunca funciona... debe tener alguna configuración rara o algo...

Asi que siempre recurro al poderoso Axis2... normalmente puede contra todos esos webservices locos a los que me he tenido que conectar...

Hay que descargar Axis2

Ponerlo en cualquier lado...

Entrar con consola a la carpeta bin y ahi...


  1. mkdir output
  2. ./wsdl2java.sh -uri http://ruta/a/webservice?wsdl -o output/prueba/
  3. cd output/prueba
  4. AXIS2_HOME="/ruta/a/axis2" ant

Nos generara en la carpeta output/prueba/bin/ un jar con el codigo Stub para llamar al webservice...

Desde Netbeans... deben agregar las librerias de Axis2... esas las agregan desde Herramientas->Complementos->Plugins disponibles->Axis2 Support... luego Propiedades->Bibliotecas->Agregar Jar/Carpeta... buscan el jar que generamos... ahi mismo deben entrar a Agregar Biblioteca y buscar Axis 2

Y pues.. el codigo java depende mucho de como se llame el paquete de tu webservice... seria simple como

  1. ws.claseStub servicio = ws.claseStub();
  2. ws.claseStub.Metodo met = new ws.claseStub.metodo();
  3. met.setParametro("Algo");
  4. //La magia para el NuSoap esta aqui!!
  5. servicio._getServiceClient().getOptions().
    setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED,
    Boolean.FALSE);
  6. servicio.metodo(met);

Y asi amigos... nos comunicamos con NuSoap.... el maldito no soporta el tipo de transporte HTTP chunk como un webservice normal... pero tuvieron que pasar varios tcpdumps para llegar a esa conclusión... espero que le quite el dolor de cabeza a alguien


lunes, febrero 01, 2010

JAX-WS 2.2 Web Methods ocultos y polimorfismo

Pues siguiendo con la nueva especificación de los JAX-WS 2.2... vemos que por default todos los metodos declarados dentro de una clase con la anotacion WebService se vuelven publicos, cosa que antes no era asi, antes todos estaban ocultos y solo colocando la anotacion WebMethod se volvian publicos.

Esto me marco error en algunas clases de WebServices donde tenia polimorfismo interno, o metodos que estaban desactivados para el uso publico.

La solucion fue colocar la etiqueta

@WebMethod(exclude=true)

Que excluye a metodo dentro de la definición del webservice.

Esta nueva especificación parece traer algunas mejoras que no he logrado revisar a fondo debido a que es muy nueva y existe poca documentación al respecto, . pero cuando vea algo interesante ya lo veran por aqui...

Netbeans 6.8 Error de JAX-WS 2.2 API Endorsed

Algunos tendran el problema que sus proyectos de Netbeans 6.7 o anteriores con referencias a Webservices, no compilan en el 6.8 esto es por que no se actualiza el proyecto, ya que el 6.8 usa JAX-WS 2.2, y nosotros veniamos usando el 2.1.

Pues bien... Netbeans 6.8 añade a nuestro proyecto en el archivo nbproject/project.properties la linea

endorsed.classpath=

Pero el buen Netbeans no le asigna un valor... su valor correcto seria

endorsed.classpath=${libs.javaee-endorsed-api-6.0.classpath}

Ademas... el Netbeans no le agrega al wsimport (generador de clases del Webservce) la linea que permite el uso de carpetas endorsed. Para hacer esto nos vamos a Proyectos/Web Service Reference/Servicio hacemos click derecho... luego Edit Web Service Attributes... wsimport options... add... y en option escribimos xendorsed y como valor ponemos true... y listo.. ya podemos compilar otra vez..