Enterprise-JavaBean-Projekte (EJB 2.0 bis EJB 2.1)

Der J2EE-Migrationsassistent unterstützt die Migration von Enterprise-Bean-Implementierungsdeskriptoren von EJB-Ressourcen der Spezifikationsstufe J2EE 1.3 auf die Spezifikationsstufe J2EE 1.4. Stateless-Session-Beans und Message-driven Beans werden auf J2EE 1.4 migriert.

Migration von Session-Beans

Der J2EE-Migrationsassistent migriert Stateless-Session-Beans, die im Deskriptor webservices.xml eines EJB-Projekts in J2EE 1.3 als Serviceendpunktschnittstellen (SEI - Service Endpoint Interface) definiert sind, auf die Spezifikationsstufe J2EE 1.4, indem die Serviceendpunktschnittstellen für die Stateless-Session-Bean festgelegt werden.

Wenn die Session-Bean als Web-Service-Endpunkt verwendet werden soll, setzt die Spezifikation J2EE 1.4 voraus, dass eine Serviceendpunktschnittstelle für eine Stateless-Session-Bean definiert ist. Bei der Migration einer EJB-JAR-Datei wird für alle Session-Beans im EJB-Projekt der Serviceendpunkt auf den Namen gesetzt, der im Deskriptor webservices.xml des EJB-Projekts verwendet wird. Im folgenden Beispiel wird veranschaulicht, wie die Metadaten eines EJB-Projekts vor und nach der Migration auf die Spezifikationsstufe J2EE 1.4 aussehen.

EJB-Projekt in J2EE 1.3: Deskriptor webservices.xml mit einer Stateless-Session-Bean, die als Web-Service-Endpunktschnittstelle verwendet wird, vor der 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>
Die Tags <service-endpoint-interface> und <service-impl-bean> im obigen Beispiel definieren die Stateless-Session-Bean "EchoEJB" als Serviceendpunkt im Web-Service-Deskriptor webservices.xml auf der Spezifikationsstufe J2EE 1.3 vor der Migration.
EJB-Projekt in J2EE 1.4: Der EJB-Implementierungsdeskriptor für dieselbe Stateless-Session-Bean "EchoEJB" mit einer Serviceendpunktschnittstelle, die vom Migrationsprozess erstellt wurde:
<?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>
Das Tag <service-endpoint> im vorstehenden Beispiel definiert "EchoEJB" nach der Migration als einen Serviceendpunkt der Spezifikationsstufe J2EE 1.4.

Migration von Message-driven Beans

Der J2EE-Migrationsassistent unterstützt die Migration von Message-driven Bean von EJB 2.0 auf EJB 2.1.

Message-driven Beans wurden in EJB 2.0 eingeführt, um die Verarbeitung asynchroner Nachrichten von einem Java™ Message Service (JMS) zu unterstützen. Die Spezifikation EJB 2.1 erweitert die Definition von Message-driven Beans, sodass sie jegliches Nachrichtensystem, nicht nur JMS, unterstützen können.

Anmerkung: Message-driven Beans, die von der Spezifikationsstufe EJB 2.0 auf EJB 2.1 migriert wurden und in WebSphere Application Server Version 6 implementiert werden, müssen für einen JCA-1.5-Ressourcenadapter (Java Connector Architecture) implementiert werden anstatt für einen Listener-Port (wie in WebSphere Application Server Version 5). Sie müssen im Editor für Implementierungsdeskriptoren die Einstellungen für die WebSphere-Bindings für die Message-driven EJB-2.1-Beans so ändern, dass diese einen JCA-Adapter verwenden. Siehe EJB 2.1-Message-driven-Bean für die Verwendung eines JCA-Adapters konfigurieren.
Folgende Artefakte für Message-driven EJB-2.0-Beans werden migriert:
  • acknowledgeMode
  • messageSelector
  • destinationType
  • subscriptionDurablity
Einige der Elemente von Message-driven EJB-2.0-Beans werden durch activation-config-Eigenschaften ersetzt. Die in der Eigenschaft activation-config zur Beschreibung des Nachrichtenübertragungsservices verwendeten Eigenschaftsnamen und -werte sind je nach Art des verwendeten Nachrichtenservices unterschiedlich. EJB 2.1 definiert jedoch einen Satz fester Eigenschaften für JMS-basierte Message-driven Beans.

Im folgenden Beispiel werden die Elemente einer Beispiel-Bean in EJB 2.0 mit den Elementen in EJB 2.1 verglichen.

Beispiel für Elemente einer Message-driven Bean 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>
Beispiel für Elemente einer Message-driven Bean 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>
Symbol das den Typ des Artikels anzeigt. Referenzartikel
Nutzungsbedingungen für Information Center | Feedback

Symbol für Zeitmarke Letzte Aktualisierung: 29.04.2014

Dateiname: rv6ejbprojects.html