Progetti Enterprise JavaBean (da EJB 2.0 a EJB 2.1)

La procedura guidata Migrazione J2EE supporta la migrazione dei descrittori di distribuzione bean enterprise dalla risorsa EJB del livello di specifica J2EE 1.3 al livello di specifica J2EE 1.4. I bean di sessione privi di stato e i bean basati sui messaggi vengono migrati a J2EE 1.4.

Migrazione di bean di sessione

La procedura guidata Migrazione J2EE consente di migrare i bean di sessione privi di stato definiti come SEI (service endpoint interfaces) nel descrittore webservices.xml di un progetto EJB dal livello di specifica J2EE 1.3 al livello di specifica J2EE 1.4, impostando nuove SEI (service endpoint interfaces) nel bean di sessione privo di stato.

La specifica J2EE 1.4 richiede che una SEI sia definita in un bean di sessione privo di stato, se il bean di sessione deve essere utilizzato come endpoint dei servizi Web. Durante la migrazione di un file JAR EJB, in tutti i bean di sessione del progetto EJB l'endpoint del servizio viene impostato sul nome utilizzato nel descrittore webservices.xml del progetto EJB. Di seguito viene riportato un esempio di come i metadati di un progetto EJB appaiono prima e dopo la migrazione al livello di specifica J2EE 1.4.

Progetto EJB in J2EE 1.3: descrittore webservices.xml con bean di sessione privo di stato utilizzato come service endpoint interface Web prima della migrazione

<?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>
I tag <service-endpoint-interface> e <service-impl-bean> dell'esempio precedente definiscono il bean di sessione privo di stato "EchoEJB" come endpoint di un servizio nel descrittore dei servizi Web a livello di specifica J2EE 1.3 prima della migrazione.

Progetto EJB in J2EE 1.4: descrittore di distribuzione EJB per il bean di sessione privo di stato "EchoEJB" con service endpoint interface creata dal processo di migrazione

<?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>
Il tag <service-endpoint> dell'esempio precedente definisce "EchoEJB" come endpoint di un servizio nel livello di specifica J2EE 1.4 dopo la migrazione.

Migrazione di bean basati sui messaggi

La procedura guidata Migrazione J2EE supporta la migrazione di bean basati sui messaggi EJB 2.0 in bean basati sui messaggi EJB 2.1 di tipo JMS (Java Message Service).

I bean basati sui messaggi sono stati introdotti in EJB 2.0 per supportare l'elaborazione di messaggi asincroni da un JMS (Java Message Service). La specifica EJB 2.1 espande la definizione di bean basato sui messaggi in modo che possa supportare qualsiasi sistema di messaggistica, non solo JMS.

Le risorse migrate dei bean basati sui messaggi EJB 2.0 sono:
  • acknowledgeMode
  • messageSelector
  • destinationType
  • subscriptionDurablity
Alcuni elementi di bean basati sui messaggi EJB 2.0 vengono sostituiti con le proprietà activation-config. I nomi delle proprietà ed i valori utilizzati nella proprietà activation-config per descrivere il servizio di messaggistica variano in base al tipo di servizio di messaggistica utilizzato. Tuttavia, EJB 2.1 definisce un insieme di proprietà fisse per i bean basati sui messaggi JMS.

Nell'esempio di seguito riportato, gli elementi di un bean di esempio in EJB 2.0 vengono confrontati con il modo in cui gli elementi vengono visualizzati in EJB 2.1

Un esempio di elementi di un bean basato sui messaggi in 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>

Un esempio di elementi di un bean basato sui messaggi in 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>

Argomento principale: Migrazione dal livello di specifica J2EE 1.3 a 1.4

Riferimenti correlati
Progetti Web (da servlet livello 2.3 a servlet livello 2.4)
Progetti di connessione (da JCA 1.0 a JCA 1.5)
Servizi Web (da J2EE 1.3 a J2EE 1.4)
Migrazione dal livello di specifica J2EE 1.3 a 1.4

Termini d'uso | Feedback
(C) Copyright IBM Corporation 2000, 2005. Tutti i diritti riservati.