Foren

crecion web services

thumbnail
francesco scamarcio, geändert vor 14 Jahren.

crecion web services

Regular Member Beiträge: 104 Beitrittsdatum: 17.08.09 Neueste Beiträge
hola a todos, estaba mirando en un tutorial la funcionalidad del service builder. He visto que se puede definir en un service.xml, tu model domain en xml y liferay te crea toda la estructura, es decir clases para el model, clases para la capa de persistence layer y clases pora la capa de service layer ademas de poder definir si exponer dichos servicios como servicos web. Mi pregunta es esta, tengo necesidad de crear una clase con unos metodos que llaman los servicios de liferay, para gestionar usuarios. Puedo definir un service xml para que me crea dicha clase y exponerla como servicio web?(necesito crear solo la capa de servicos , no necesito ni model y ni servicos de persistencia.
thumbnail
Alex Wallace, geändert vor 14 Jahren.

RE: crecion web services

Liferay Master Beiträge: 640 Beitrittsdatum: 05.11.07 Neueste Beiträge
Si se puede... simplemente omite campos en tu entidad... Ago mas o menos así:


<!--?xml version="1.0"?-->


<service-builder package-path="com.whatever">
    <namespace>Whatever</namespace>
    <entity name="MyEntity" local-service="true" remote-service="true" />
</service-builder>


Y escribe tu codigo en MyEntityServiceImpl

Saludos!
thumbnail
francesco scamarcio, geändert vor 14 Jahren.

RE: crecion web services

Regular Member Beiträge: 104 Beitrittsdatum: 17.08.09 Neueste Beiträge
gracia esto ya lo tenia hecho la unica duda es como hacer el build de ant. Yo antes usaba este codigo para buildar el service

<target name="build-wsdd-myservice">
<antcall target="build-service">
<param name="service.file" value="src/com/ext/portlet/myservice/service.xml" />
</antcall>
</target>

Pero he visto en una wiki de liferay que usavan esto para generar el servicio web

<target name="build-wsdd-myservice">
<antcall target="build-wsdd">
<param name="service.file" value="src/com/ext/portlet/myservice/service.xml" />
</antcall>
</target>

tu sabes cual es la diferencia entre hacer un antcaal build-service y un antcall build wssd?
thumbnail
Alex Wallace, geändert vor 14 Jahren.

RE: crecion web services

Liferay Master Beiträge: 640 Beitrittsdatum: 05.11.07 Neueste Beiträge
Si... El primero es necesario, crea todas las clases, el codigo, registra el bean en el portal, etc...

El segundo crea los archivos necesarios para exponer tu servicio via servicios... Usando éste último es como puedes acceder la liga que lista los servicios (en tunnel-web) y sus respectivos wsdl por ejemplo.

Para los servicios que expongas via web, corre ambos.
thumbnail
francesco scamarcio, geändert vor 14 Jahren.

RE: crecion web services

Regular Member Beiträge: 104 Beitrittsdatum: 17.08.09 Neueste Beiträge
Esto lo hice todo y si veo la lista de servicios en tunnel me sale mi servicio HE pusto un metodo sencillo getmessage qye me devueve un string, en el serviceimpl, despues hago el deploy del service y de wsdd y todo bien puedo vero el wsdl del servicio. Me creo el cliente con eclipse y llamo el servicio , pero es aqui que me da un error, me dice no operation found por el metodo getMessage(lo que he creado en la clase)


en el service he puesto localservice=flase, remote service=true, y la prueba la estoy haciendo de localhost, sera por esto?
thumbnail
Alex Wallace, geändert vor 14 Jahren.

RE: crecion web services

Liferay Master Beiträge: 640 Beitrittsdatum: 05.11.07 Neueste Beiträge
El Wsdl muestra tu metodo?

Estas autentificandote tanto a la hora de obtener el wsdl como a la hora de llamar el servicio mediante autenticación simple? (en el url)...

El hecho de poner localhost no debe ser problema (siempre que tu cliente y servidor estén en localhost)...

Yo uso Axis como cliente para no errar... Aunque he hecho clientes con nusoap (php) también, sin ningún prolbema.
thumbnail
francesco scamarcio, geändert vor 14 Jahren.

RE: crecion web services

Regular Member Beiträge: 104 Beitrittsdatum: 17.08.09 Neueste Beiträge
mira te pongo dos fichero uno es el wsdl generado por liferay y el otro es una clase de prueba que me creo con el wizard de eclipse para crear un client axis, si llamo a sus servicios, todo va bien y funciona pero si llamo al mio me sale el error de :

: No such operation 'getMessage'
thumbnail
francesco scamarcio, geändert vor 14 Jahren.

RE: crecion web services

Regular Member Beiträge: 104 Beitrittsdatum: 17.08.09 Neueste Beiträge
resuelto !!!! no se que habia pasado , los pasos que hacia eran los correctos, he vuelto a hacer los mismo pasos y ha funcionado, muchas gracia por tu ayuda
thumbnail
francesco scamarcio, geändert vor 14 Jahren.

RE: crecion web services

Regular Member Beiträge: 104 Beitrittsdatum: 17.08.09 Neueste Beiträge
una cosa quiero preguntarte, ahora mismo si tengo que hacer algun cambio en la clase que espongo como servicio web, sigo estos pasos:

- ejecuto el ant task de ext-impl para buildar los servicios

- ejecuto el ant task de ext-impl para buildar los wsdd

- ejecuto el build del ext enviroment y hago el deploy de todo.

no hay una manera de deployar solo la parte de ext-impl, sin tener que parar liferay y deployar todo la ext enviroment?
thumbnail
Alex Wallace, geändert vor 14 Jahren.

RE: crecion web services

Liferay Master Beiträge: 640 Beitrittsdatum: 05.11.07 Neueste Beiträge
La cosa es que para que los nuevos recursos/codigo sean reconocidos por tu servidor de aplicaciones (si es tomcat, quizas difiera para otros) es necesario 're-deployar' el web app al que le corresponden... Si haces eso con ROOT en tomcat, nada funciona hazta que reinicies... Asi que creo que la respuesta es no...

Ahora bién... puedes escribir unit tests para probar todo el funcionamiento de tus metodos sin tener que usar el servidor de aplicaciones y dejar la última prueba donde los usas como servicios para el ultimo...

Espero que te ayude.