Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Comment exporter/utiliser un service avec Burlap ?
auteur : Gildas Cuisinier
Burlap est un protocole basé sur XML et sur http pour exporter un service. Il est normalement indépendant du langage, mais actuellement principalement utilisé pour des applications Java à Java.

Afin d'exporter un service avec Burlap, il est nécessaire que celui-ci soit composé d'une interface et d'une implémentation.
Dès lors il est très simple d'exporter un service :

<!-- Configuration du service en lui même -->
<bean id="monService" class="com.developpez.spring.remoting.MonServiceImpl">
	<!-- Définition des propriétés -->
</bean>

<bean name="/MonServiceBurlap" class="org.springframework.remoting.caucho.BurlapServiceExporter">
	<!-- Spécification de l'implémentation du service -->
	<property name="service">
		<ref bean="monService"/>
	</property>
	
	<!-- Spécification de l'interface du service à exporter -->
	<property name="serviceInterface">
		<value>com.developpez.spring.remoting.MonService</value>
	</property>
	
</bean>
Le nom "/MonServiceBurlap" permet d'identifier l'URL d'accès à ce service, et pour cela, il est évidemment nécessaire que ces définitions soient faites dans le fichier de configuration de contexte d'une DispatcherServlet ( voir Spring MVC pour plus d'information ).

Par exemple, pour une Servlet de nom remoting, c'est dans un fichier WEB-INF/remoting-servlet.xml. Le fichier web.xml correspondant pourrait être :

<servlet>
	<servlet-name>remoting</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
	<servlet-name>remoting</servlet-name>
	<url-pattern>/remoting/*</url-pattern>
</servlet-mapping>
Dès lors, si l'application Web est déployée et possède comme url d'accès http://localhost:8080/MonApplication, le service Burlap sera accessible via http://localhost:8080/MonApplication/remoting/MonServiceBurlap.

Au niveau du client, il existe un mécanisme similaire pour se connecter au service :

<bean id="monServiceProxy" class="org.springframework.remoting.caucho.BurlapProxyFactoryBean">
	<!-- Configuration de l'url d'accès  -->
	<property name="serviceUrl">
		<value>http://localhost:8080/MonApplication/remoting/MonServiceBurlap</value>
	</property>
	
	<!-- Configuration de l'interface du service que le proxy doit implémenté  -->
	<property name="serviceInterface">
		<value>com.developpez.spring.remoting.MonService</value>
	</property>
</bean>
Dès lors, il est possible d'injecter monProxyService de manière tout à fait standard à tout Bean nécessitant une référence au service ( via son interface ).


Comment exporter/utiliser des services Web avec HttpInvoker ?
auteur : Gildas Cuisinier
Contrairement à Burlaps ou Hessian qui utilisent des sérialisations binaire et XML indépendantes à Java, HttpInvoker utilise la sérialisation Java standard.
Cela implique que HttpInvoker ne fonctionne bien evidemment qu'entre deux applications Java, mais aussi que tous les objets qui sont transférés suivent les règles de sérialisation Java : Implémenter l'interface java.io.Serializable ainsi que de définir un serialVersionUID correctement.

De plus, HttpInvoker n'est disponible qu'avec Spring, il est donc nécessaire que le client et le serveur soient tout les deux basés sur Spring.

Afin d'exporter un service, la classe HttpInvokerServiceExporter sera utilisée :

<!-- Configuration du service en lui même -->
<bean id="monService" class="com.developpez.spring.remoting.MonServiceImpl">
	<!-- Définition des propriétés -->
</bean>

<bean name="/MonServiceHttpInvoker" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
	<!-- Spécification de l'implémentation du service -->
	<property name="service">
		<ref bean="monService"/>
	</property>
	
	<!-- Spécification de l'interface du service à exporter -->
	<property name="serviceInterface">
		<value>com.developpez.spring.remoting.MonService</value>
	</property>
	
</bean>
Le nom "/MonServiceHttpInvoker" permet d'identifier l'URL d'accès à ce service, et pour cela, il est évidemment nécessaire que ces définitions soient faites dans le fichier de configuration de contexte d'une DispatcherServlet ( voir Spring MVC pour plus d'information ).

Par exemple, pour une Servlet de nom remoting, c'est dans un fichier WEB-INF/remoting-servlet.xml. Le fichier web.xml correspondant pourrait être :

<servlet>
	<servlet-name>remoting</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
	<servlet-name>remoting</servlet-name>
	<url-pattern>/remoting/*</url-pattern>
</servlet-mapping>
Dès lors, si l'application Web est déployée et possède comme url d'accès http://localhost:8080/MonApplication, le service HttpInvoker sera accessible via http://localhost:8080/MonApplication/remoting/MonServiceHttpInvoker.

Au niveau du client, il existe un mécanisme similaire pour se connecter au service :

<bean id="monServiceProxy" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
	<!-- Configuration de l'url d'accès  -->
	<property name="serviceUrl">
		<value>http://localhost:8080/MonApplication/remoting/MonServiceHttpInvoker</value>
	</property>
	
	<!-- Configuration de l'interface du service que le proxy doit implémenté  -->
	<property name="serviceInterface">
		<value>com.developpez.spring.remoting.MonService</value>
	</property>
</bean>
Dès lors, il est possible d'injecter monProxyService de manière tout à fait standard à tout Bean nécessitant une référence au service ( via son interface ).


Comment exporter/utiliser un service avec Hessian ?
auteur : Gildas Cuisinier
Hessian est un protocole binaire, basé sur http pour exporter un service. Il est normalement indépendant du langage, mais actuellement principalement utilisé pour des applications Java à Java.

Afin d'exporter un service avec Hessian, il est nécessaire que celui-ci soit composé d'une interface et d'une implémentation.
Dès lors il est très simple d'exporter un service :

<!-- Configuration du service en lui même -->
<bean id="monService" class="com.developpez.spring.remoting.MonServiceImpl">
	<!-- Définition des propriétés -->
</bean>

<bean name="/MonServiceHessian" class="org.springframework.remoting.caucho.HessianerviceExporter">
	<!-- Spécification de l'implémentation du service -->
	<property name="service">
		<ref bean="monService"/>
	</property>
	
	<!-- Spécification de l'interface du service à exporter -->
	<property name="serviceInterface">
		<value>com.developpez.spring.remoting.MonService</value>
	</property>
	
</bean>
Le nom "/MonServiceHessian" permet d'identifier l'URL d'accès à ce service, et pour cela, il est évidemment nécessaire que ces définitions soient faites dans le fichier de configuration de contexte d'une DispatcherServlet ( voir Spring MVC pour plus d'information ).

Par exemple, pour une Servlet de nom remoting, c'est dans un fichier WEB-INF/remoting-servlet.xml. Le fichier web.xml correspondant pourrait être :

<servlet>
	<servlet-name>remoting</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
	<servlet-name>remoting</servlet-name>
	<url-pattern>/remoting/*</url-pattern>
</servlet-mapping>
Dès lors, si l'application Web est déployée et possède comme url d'accès http://localhost:8080/MonApplication, le service Hessian sera accessible via http://localhost:8080/MonApplication/remoting/MonServiceHessian.

Au niveau du client, il existe un mécanisme similaire pour se connecter au service :

<bean id="monServiceProxy" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
	<!-- Configuration de l'url d'accès  -->
	<property name="serviceUrl">
		<value>http://localhost:8080/MonApplication/remoting/MonServiceHessian</value>
	</property>
	
	<!-- Configuration de l'interface du service que le proxy doit implémenté  -->
	<property name="serviceInterface">
		<value>com.developpez.spring.remoting.MonService</value>
	</property>
</bean>
Dès lors, il est possible d'injecter monProxyService de manière tout à fait standard à tout Bean nécessitant une référence au service ( via son interface ).


precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2004  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com