Foren

ext-impl o ext-service??

Eduardo Antón, geändert vor 14 Jahren.

ext-impl o ext-service??

New Member Beiträge: 17 Beitrittsdatum: 05.12.08 Neueste Beiträge
buenos dias,

estamos teniendo ciertos problemas al modificar una clase de liferay, a ver si alguién nos puede echar una mano emoticon. La situación es la siguiente:

Hemos modificado la clase NavItem.java que esta bajo com.liferay.portal.theme, en portal-service. Al estar en portal-service, para modificarla con el extensión, la hemos copiado a ext-service. (el cambio en concreto es añadirle un metodo y alguna otra cosa).
Al desplegar esto en local (maquinas windows xp, liferay 5.2.5 enterprise edition, tomcat 6), todo funciona correctamente. El problema viene al pasar esto a nuestro server de "integración", que es un ubuntu. Al subirlo alli, al acceder, da un error diciendo que no existe ese metodo (el nuevo que se ha añadido) en esa clase. Revisando el ext-service.jar, que es donde se mete lo modificado en ext-service, y decompilando el class, veo que esta correcto :S.
Como no hemos conseguido ver por que pasa esto, se me ha ocurrido probar a meter nuestro NavItem. java modificado, a ext-impl (en lugar de ext-service), y en local sigue funcionando, y en el ubuntu... ahora si funciona!.

Aparte de preguntar si alguien sabe por que nos pasa esto, de que en el ubuntu no pille la clase en ext-service, me gustaria preguntar si esto de meter en ext-impl una clase de portal-service es correcto y lo podemos hacer así.

nada más, ahi os dejo mi expediente x del dia, a ver si alguno me ilumina emoticon
muchas gracias,
un saludo
thumbnail
Julio Camarero, geändert vor 14 Jahren.

RE: ext-impl o ext-service??

Liferay Legend Beiträge: 1668 Beitrittsdatum: 15.07.08 Neueste Beiträge
Hola Eduardo,

no deberíais utilizar el entorno de extensión de esta forma para sobreescribir clases, porque no tienes la certeza de que se vaya a leer la tuya antes que la de liferay, y por tanto dependerá de cómo funcione cada classloader en cada máquina virtual java.

Para meter tus clases java tendrás que utilizar Spring (spring-ext.xml) o struts, dependiendo de lo que quieras cambiar para inyectar tus dependencias.

un saludo!

Julio Camarero
Liferay España