Projets EJB (EJB 2.0 à EJB 2.1)

L'assistant de migration J2EE prend en charge la migration des descripteurs de déploiement de bean enterprise à partir de la ressources EJB au niveau de spécification J2EE 1.3 vers J2EE 1.4. Les beans session sans état et les beans gérés par messages sont migrés vers J2EE 1.4.

Migration des beans session

L'assistant de migration J2EE migre les beans session sans état définis comme interfaces SEI (Service Endpoint Interface) dans le descripteur webservices.xml d'un projet EJB du niveau de spécification J2EE 1.3 vers J2EE 1.4 en définissant des interfaces SEI sur le bean session sans état.

La spécification J2EE 1.4 nécessite qu'une interface SEI soit définie sur un bean session sans état si le bean session doit être utilisé comme noeud final de services Web. Lors de la migration d'un fichier JAR EJB, le noeud final de service de tous les beans session du projet EJB a le nom utilisé dans le descripteur webservices.xml du projet EJB. Vous trouverez ci-dessous un exemple de l'aspect des métadonnées d'un projet EJB avant et après la migration vers le niveau de spécification J2EE 1.4.

Projet EJB dans J2EE 1.3 : descripteur webservices.xml avec un bean session sans état utilisé comme interface SEI avant la migration

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE webservices PUBLIC "-//IBM Corporation, Inc.//DTD J2EE Web services 1.0//EN" 
"http://www.ibm.com/webservices/dtd/j2ee_web_services_1_0.dtd">
   <webservices id="WebServices_1084831328093">
      <webservice-description id="WebServiceDescription_1084831328093">
         <webservice-description-name>EchoEJBService</webservice-description-name>
         <wsdl-file>META-INF/wsdl/EchoEJB.wsdl</wsdl-file>
         <jaxrpc-mapping-file>META-INF/EchoEJB_mapping.xml</jaxrpc-mapping-file>
         <port-component id="PortComponent_1084831328103">
            <port-component-name>EchoEJB</port-component-name>
            <wsdl-port id="WSDLPort_1084831328103">
               <namespaceURI>http://test</namespaceURI>
               <localpart>EchoEJB</localpart>
            </wsdl-port>
            <service-endpoint-interface>test.EchoEJB</service-endpoint-interface>
            <service-impl-bean id="ServiceImplBean_1084831328103">
               <ejb-link>EchoEJB</ejb-link>
            </service-impl-bean>
         </port-component>
      </webservice-description>
   </webservices>
Les balises <service-endpoint-interface> et <service-impl-bean> dans l'exemple précédent définissent le bean session sans état "EchoEJB" comme noeud final de service dans le descripteur webservices au niveau de spécification J2EE 1.3 avant la migration.

Projet EJB dans J2EE 1.4 : descripteur de déploiement EJB pour le même bean session sans état "EchoEJB" avec interface SEI créée par le processus de migration

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar>
<ejb-jar id="ejb-jar_ID" version="2.1" xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">
	<display-name>
	EchoEJBProject</display-name>
	<enterprise-beans>
		<session id="EchoEJB">
			<ejb-name>EchoEJB</ejb-name>
			<home>test.EchoEJBHome</home>
			<remote>test.EchoEJB</remote>
			<service-endpoint>test.EchoEJB</service-endpoint>
			<ejb-class>test.EchoEJBBean</ejb-class>
			<session-type>Stateless</session-type>
			<transaction-type>Container</transaction-type>
		</session>
	</enterprise-beans>
</ejb-jar>
La balise <service-endpoint> de l'exemple précédent définit "EchoEJB" comme noeud final de service dans le niveau de spécification J2EE 1.4 après la migration.

Migration des beans gérés par messages

L'assistant de migration J2EE prend en charge la migration des beans gérés par messages EJB 2.0 vers les beans gérés par messages de type JMS (Java Message Service (JMS) EJB 2.1.

Les beans gérés par messages ont été introduits dans EJB 2.0 afin de prendre en charge le traitement de messages asynchrones à partir d'un service JMS (Java Message Service). La spécification EJB 2.1 développe la définition du bean géré par messages afin qu'il puisse prendre en charge tout système de messagerie, et non uniquement JMS.

Les artefacts du bean géré par messages EJB 2.O migrés sont les suivants :
  • acknowledgeMode
  • messageSelector
  • destinationType
  • subscriptionDurablity
Certains des beans gérés par messages EJB 2.0 ont été remplacés par les propriétés activation-config. Les noms et les valeurs des propriétés utilisés dans la propriété activation-config pour décrire le service de messagerie dépendent du type du service de messagerie utilisé. Toutefois, EJB 2.1 définit un ensemble de propriétés fixes pour les beans gérés par messages de type JMS.

L'exemple suivant compare les éléments d'un bean exemple dans EJB 2.0 avec l'aspect dans EJB 2.1.

Exemple d'éléments de bean géré par message dans EJB 2.0 :

<message-driven id="Mdb20">
	  <ejb-name>Mdb</ejb-name>
	  <ejb-class>ejbs.MdbBean</ejb-class>
	  <transaction-type>Bean</transaction-type>
	  <message-selector>mdbMessage</message-selector>
	  <acknowledge-mode>Auto-acknowledge</acknowledge-mode>
	  <message-driven-destination>
		<destination-type>javax.jms.Topic</destination-type>
		<subscription-durability>Durable</subscription-durability>
	   </message-driven-destination>
</message-driven>

Exemple de bean géré par message dans EJB 2.1 :

    <message-driven id="Mdb21">
  <ejb-name>Foo/ejb-name>
  <ejb-class>ejbs.FooBean</ejb-class>
   <messaging-type>javax.jms.MessageListener</messaging-type>
   <transaction-type>Bean/transaction-type>
   <message-destination-type>javax.jms.Topic</message-destination-type>
    <activation-config>
	  <activation-config-property>
	   <activation-config-property-name>destinationType</activation-config-property-name>
	   <activation-config-property-value>javax.jms.Topic</activation-config-property-value>
	  </activation-config-property>
	  <activation-config-property>
	   <activation-config-property-name>subscriptionDurability</activation-config-property-name>
	     <activation-config-property-value>Durable</activation-config-property-value>
	  </activation-config-property>
	  <activation-config-property>
	     <activation-config-property-name>acknowledgeMode</activation-config-property-name>
	     <activation-config-property-value>AutoAcknowledge</activation-config-property-value>
	  </activation-config-property>
	  <activation-config-property>
		<activation-config-property-name>messageSelector</activation-config-property-name>
		<activation-config-property-value>fooSelector</activation-config-property-value>
	  </activation-config-property>
</activation-config>
</message-driven>

Sujet parent : Migration du niveau de spécification J2EE 1.3 vers 1.4

Référence associée
Projets Web (niveau de servlet 2.3 vers niveau de servlet 2.4)
Projets du connecteur (JCA 1.0 à JCA 1.5)
Services Web (J2EE 1.3 vers J2EE 1.4)
Migration du niveau de spécification J2EE 1.3 vers 1.4

Conditions d'utilisation | Commentaires
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.