Developpez.com - Java
X

Choisissez d'abord la catégorieensuite la rubrique :

logo
Sommaire > Remoting
        Comment exporter/utiliser un service avec Burlap ?
        Comment exporter/utiliser des services Web avec HttpInvoker ?
        Comment exporter/utiliser un service avec Hessian ?
        Comment intégrer Apache Axis2 et Spring ?

rechercher
precedent    sommaire    suivant    telechargermiroir


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 ).


Comment intégrer Apache Axis2 et Spring ?
auteur : Righetto Dominique
Pour intégrer Apache Axis2 et Spring de manière à ce que ce dernier gére les instances des web services, il faut déclarer le bean qui représente le web service dans le fichier de configuration du web service, c'est à dire dans le fichier "services.xml" via le tag "SpringBeanName"

<parameter name="SpringBeanName" locked="false">monBeanWebService</parameter> 
ET indiquer à Axis que Spring est le fournisseur d'instances, via le tag "ServiceObjectSupplier" dans le fichier "services.xml"

<service name="MonService">
    <description>
        Mon super service
    </description>
    <messageReceivers>
        <messageReceiver
            mep="http://www.w3.org/2004/08/wsdl/in-out"
    		class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
    </messageReceivers>
    <parameter name="ServiceObjectSupplier" locked="false">org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier</parameter>
    <parameter name="SpringBeanName" locked="false">monBeanWebService</parameter>
    <parameter name="useOriginalwsdl">true</parameter>
</service>
Les lignes importantes dans ce fichier sont :

<parameter name="ServiceObjectSupplier" locked="false">org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier</parameter>
<parameter name="SpringBeanName" locked="false">monBeanWebService</parameter>
"monBeanWebService" est un bean (une classe publique non abstraite non finale avec des méthodes publiques qui représentent les services exposés) qui est déclaré dans un fichier de configuration Spring.


rechercher
precedent    sommaire    suivant    telechargermiroir

Consultez les autres F.A.Q's


Valid XHTML 1.1!Valid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2004 Developpez Developpez LLC. Tous 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'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Responsables bénévoles de la rubrique Java : Mickael Baron - Robin56 -