Projets Enterprise JavaBean (EJB 2.0 vers EJB 2.1)

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

Migration de beans session

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

La spécification J2EE 1.4 requiert qu'une interface SEI soit définie sur un bean session sans état si le bean session doit être utilisé en tant que noeud final de services Web. Lors de la migration d'un fichier JAR EJB, le noeud final de service de tous les beans session sont définis avec le nom utilisé dans le descripteur webservices.xml du projet EJB. Voici un exemple de la façon dont les métadonnées d'un projet EJB se présente 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é en interface de noeud final de service Web avant 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> de l'exemple précédent définissent un bean session sans état "EchoEJB" en tant que 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 de beans EJB pour le même bean session sans état "EchoEJB" avec une interface de noeud final de service 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" en tant que noeud final de service dans le niveau de spécification J2EE 1.4 après la migration.

Migration de beans gérés par message

L'assistant de migration J2EE prend en charge la migration des beans gérés par message EJB 2.0 vers EJB 2.1.

Les beans gérés par messages ont été introduits dans la spécification EJB 2.0 afin de prendre en charge le traitement des 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 message afin qu'il puisse prendre en charge tout système de messagerie, et non uniquement JMS.

Remarque : Les beans gérés par message qui ont été migrés du niveau de spécification EJB 2.0 vers le niveau EJB 2.1 et qui sont déployés vers WebSphere Application Server version 6 doivent être déployés avec un adaptateur de ressources JCA (Java Connector Architecture) 1.5 au lieu d'un port d'écoute (comme dans WebSphere Application Server version 5). Vous devez utiliser l'éditeur de descripteur de déploiement pour modifier les paramètres de liaisons WebSphere pour que les beans gérés par message utilisent un adaptateur JCA. Voir Configuration d'un bean géré par message EJB 2.1 pour utiliser un adaptateur JCA.
Les artefacts des beans gérés par message EJB 2.0 migrés sont :
  • acknowledgeMode
  • messageSelector
  • destinationType
  • subscriptionDurablity
Certains éléments des beans gérés par message EJB 2.0 sont remplacés par des propriétés activation-config. Les noms et les valeurs de propriété utilisés dans la propriété activation-config pour décrire le service de messagerie varieront en fonction du type de service de messagerie utilisé. Cependant, EJB 2.1 définit un ensemble de propriétés fixes pour les beans gérés par message basés sur JMS.

L'exemple suivant compare les éléments d'un exemple de bean dans EJB 2.0 avec la façon dont les éléments apparaissent 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 d'éléments 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>
Icône indiquant le type de rubrique Rubrique de référence
Dispositions pour les centres de documentation | Commentaires en retour

Icône d'horodatage Dernière mise à jour: May 29, 2014 10:11

Nom de fichier : rv6ejbprojects.html