domingo, 11 de mayo de 2008

MappingException... tot un desencadenat de petades

Intentant possar en marxa el meu PFC m'he trobat amb alguns problemillas, aquí deixo les solucions per si algu es troba en la meva mateixa situació.

L'error que es mostrava per consola d forma resumida és el següent :

org.hibernate.MappingException: invalid configuration

El problema és q no pot mapejar les dades que conté el hibernate.cfg.xml (on tenim totes les cosetes d'hibernate configuradetes), solució afegir abans d tot això:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

+ info : http://www.eclipseplugincentral.com/PNphpBB2-printview-t-2646-start-0.html


Següent petada:
org.hibernate.MappingException: could not interpret id generator

Cal mirar els mapejos de totes les nostres taules, són els fitxers *.hbm.xml que trobarem, en el cas del meu projecte, a : edu.upc.pfc.eci.dao.conf

L'error venia pq en l'id que genera hibernate tenia que el generator class era una sequencia quan ha de ser "native" :

Es col·loca per defecte en sequence ja que està pensat per quan es realitzen conexions contra Oracle, però si treballem contra MySql ja ens accepta els objectes "natius".

+info : http://www.myeclipseide.com/index.php?name=PNphpBB2&file=viewtopic&t=11667&start=0&postdays=0&postorder=asc&highlight=

Tercera petada:

En aquest cas és per falta d'una llibreria:

java.lang.NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter

Aquest és el missatge que ens dona i ens cal fer l'import de la llibreria CgLib que podem obtenir a la següent web: http://cglib.sourceforge.net/

+info : http://micaelgallego.blogspot.com/2004/12/httpcglibsourceforgenet.html
http://forum.springframework.org/archive/index.php/t-10513.html

Quarta!

Error: java.lang.NoClassDefFoundError: org/objectweb/asm/Type
Solució: La llibreria CgLib té dependencies, en aquest cas ens falta la llibreria asm.jar

+info : http://forum.springframework.org/showthread.php?t=19016
get it : http://forge.objectweb.org/projects/asm/

Probablement ens apareguin més petades per la manca de llibreries. O per que les noves versions d'aquestes no acaben de funcionar del tot bé. Es recomana l'ús de llibreries que funcionin sense dependències ja que ens facilitaran més la feina.

jueves, 8 de mayo de 2008

Problemes de codificació

A vegades quan treballes amb sistemes operatius diferentes (windows, leopard, ubuntu,..) et trobres en que les coses estan en codificacions diferents i que programes com l'Eclipse no et deixen guardar les modificacions dels arxius perque la codificació no li barrufa (això només m'ha passat a Windows... ¬¬), es per això que deixo aquí la meva petita aportació per a futures generacions:

A l'Eclipse fer: Window –> Preferences –> General –> Editors –> Spelling
A llavors a l'opció Encoding l'indiquem la codificació dessitjada. Jo ho tinc ficat tot a ISO-8859-1 per a que el Windows d la feina sigui feliç.

La informació està extreta de la següent web: http://rubensa.wordpress.com/2006/09/07/eclipse-character-encoding/

XD

Hi ha coses que han de quedar en algun lloc per la posteritat:

Las Gasolineras me dan miedo: Sin Plomo 95, Sin Plomo 98… Como saquen Sin Plomo XP me compro una bici

martes, 6 de mayo de 2008

jaBa things

A vegades estàs a la feina i no saps per quin motiu per l'eclipse es revela contra tu donant-te errors que et fan anar per els camins de la amargura (almenys a mi).

Moltes vegades la solució la trobes mirant altres projectes per els quals treballes, o preguntant-li al gran Google, però aquest no sempre té la resposta, tot i que ens pot portar a llocs interessants com PinchazosJava.

PinchazosJava és un blog on et pots trobar amb diferents errors i les seves possibles solucions, jo de moment vull deixar en el meu la meva petita aportació que vaig descobrir ahir.

En entorns desenvolupats amb J2EE sota Struts i Hibernate, quan volem realitzar una LEFT JOIN contra Oracle a través de Hibernate, la comparació entre Foreign Keys ha d'anar a la part del WHERE. (potser sembla obvi, però a mi google no em va saber donar una resposta). Tot i que la gracia d'utitlizar Hibernate resideix en que aquesta comparació no ens cal, pq ja ho tenim definit al hbm.xml que defineix la taula.