System.Collections.ListofTips

May 14, 2008

Web Services usando spring.net

Filed under: Spring.net — José Franco @ 12:22 am

Bueno, acá publico un ejemplo simple de un Web Servicess que implementa spring, para levantar servicios virtuales, con una capa de datos también por inyección de código.

Son mis primeras experiencias, así que las quiero compartir con ustedes, las capas que tengo son:

Ahora les explico, no tiene gran funcionalidad este ejemplo, ya que solo lo hice para compartir… y no es para ningún desarrollo real.

Tengo el

Sería el CommonTypes, el objeto que voy a transferir, para este caso no tiene mucho sentido, pero más adelante voy a mostrar como consumir un WS por spring.Net, y en este caso si es útil para saber que voy a recibir.

Así que es una clase sin nada en particular

…..

En el DAO, defino las interfaces, así puedo tener un Sql Implementation, Oracle, Xml, lo que quisiera realmente, no hay ningún secreto por ahora.

Ahora veamos las otras dos capas que nos quedan

En Entitys, es una interfaz del WebServices… en este caso, es muy simple

Y en ServiceImplementation, simplemente hay que implementar y codificarlo.

Bueno ahora vamos a ver, mas sobre este UserService…

Generamos estas propiedades, para asignarle por spring, una instancia del DAO, podría ser de sql, oracle, o lo que quisieran, mientras implementaran la interfaz … Eso es lo que ofrece spring.net

En nuestro método, usamos este DAO que asignamos, para traer “x” dato.

Ahora, solo nos falta configurar el WebServices.

Generen, una carpeta “X”, con un Xml de configuración, en mi caso “Configuration”, y “webServices.xml”.

En este mismo, tenemos que hacer todo el mapping

<?xml
version=1.0
encoding=utf-8 ?>

<objects
xmlns=http://www.springframework.net >

<description>Servicios Expuestos</description>

<object
id=UserServiceAsmx


type=Synnax.Core.WS.UserAuthentication.ServiceImplementation.UserService, Synnax.Core.WS.UserAuthentication.ServiceImplementation >

<property
name=IUser
ref=UserDAO />

</object>

<object
id=UserDAO
type=Synnax.Core.WS.UserAuthentication.DataAccess.SqlImplementation.UserImpl, Synnax.Core.WS.UserAuthentication.DataAccess.SqlImplementation />

<object
id=UserServices
type=Spring.Web.Services.WebServiceExporter, Spring.Web>

<property
name=TargetName
value=UserServiceAsmx/>

<property
name=Namespace
value=http://synnax/services//>

<property
name=Description
value=Web Service de Usuario/>

</object>

</objects>

En sí, configuramos un objeto UserDAO, que apunta a la implementación del DAO que queremos, en este caso una para SqlServer, generamos un Objeto “UserServiceAsmx“, que apunta a la implementación del WS, y como verán le asigno la propiedad IUser, que espera una implementación del DAO, en este caso el UserDAO que configuramos.

Y por ultimo generamos un “UserServices” que como Target tiene nuestro UserServiceAsmx, esto va a levantar un .asmx “virtual”, en este caso sería un UserServices.asmx.

Bueno, como último paso, hay que configurar el Web.Config.

<configuration>

<!– Begin - Necesario para Spring.NET –>

<configSections>

<sectionGroup
name=spring>

<section
name=context
type=Spring.Context.Support.WebContextHandler, Spring.Web/>

</sectionGroup>

</configSections>


</configuration>

Esto siempre va, dentro de System.Web

<system.web>

<!– Begin - Necesario para Spring.NET –>

<httpHandlers>

<add
verb=*
path=*.asmx
type=Spring.Web.Services.WebServiceHandlerFactory, Spring.Web/>

</httpHandlers>

<httpModules>

<add
name=Spring
type=Spring.Context.Support.WebSupportModule, Spring.Web/>

</httpModules>

<!– End - Necesario para Spring.NET –>


</system.web>

Es evidente que hace esto, levanta las peticiones que se hacen para los asmx, y el modulo correspondiente para manejar todo esto.

Y como final, después del nodo de system.web …

</system.web>

<!– Begin - Necesario para Spring.NET –>

<spring>

<context
type=Spring.Context.Support.WebApplicationContext, Spring.Web>

<resource
uri=~/Configuration/webServices.xml/>

</context>

</spring>

<!– End - Necesario para Spring.NET –>

</configuration>

Le asignamos el archivo de configuración, al contexto que estamos usando.

Levantan, y si tipean el nombre alias que apuntamos la implementación del WS, va a andar todo correctamente:

Bueno, eso fue algo rápido, y que no tenía pensando publicarlo hoy, pero alguien me pidió un ejemplo.

Saludos.

PD: No se olviden de meter todas las dependencias de spring.net, sino no va a andar nada! Obvie esos pasos, porque son lógicos.

Share and Enjoy:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • E-mail this story to a friend!
  • BarraPunto
  • blogmarks
  • co.mments
  • De.lirio.us
  • kick.ie
  • LinkedIn
  • Linkter
  • Live
  • Meneame
  • MyShare
  • Print this article!
  • TwitThis
  • YahooMyWeb
Bookmark and Share:

1 Comment »

  1. Corrección de este articulo http://blogs.synnax.net/jose.franco/2008/05/17/correcciones-al-articulo-de-springnet/

    Comment by José Franco — May 17, 2008 @ 6:39 pm

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress