Projetos do Enterprise JavaBean (EJB 2.0 para EJB 2.1)

O Assistente para Migração do J2EE suporta a migração de descritores de implementação de bean corporativo do recurso EJB do nível de especificação J2EE 1.3 para J2EE 1.4. Os beans de sessão sem preservação de estado e os beans orientados a mensagens são migrados para o J2EE 1.4.

Migrando Beans de Sessão

O Assistente para Migração do J2EE migra os beans de sessão sem preservação de estado definidos como SEI (Service Endpoint Interfaces) no descritor webservices.xml de um projeto EJB no J2EE 1.3 para o nível de especificação J2EE 1.4, configurando novas service endpoint interfaces no bean de sessão sem preservação de estado.

A especificação J2EE 1.4 requer uma SEI definida em um bean de sessão sem preservação de estado se o bean de sessão não for utilizado como um nó de extremidade de serviços da Web. Durante a migração de um EJB JAR, todos os beans de sessão no projeto EJB recebem o nó de extremidade de serviço definido para o nome utilizado no descritor webservices.xml do projeto EJB. Segue um exemplo de como os metadados de um projeto EJB ficarão antes e depois da migração para o nível de especificação J2EE 1.4.

Projeto EJB em J2EE 1.3: Descritor webservices.xml com bean de sessão sem preservação de estado utilizado como uma interface de nó de extremidade de serviço da Web antes da migração

<?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>
As tags <service-endpoint-interface> e <service-impl-bean> do exemplo acima definem o bean de sessão sem preservação de estado "EchoEJB" como um nó de extremidade de serviço no descritor de serviços da Web no nível de especificação J2EE 1.3 antes da migração.

Projeto EJB no J2EE 1.4: Descritor de implementação EJB para o bean de sessão sem preservação de estado "EchoEJB" com Service Endpoint Interface criado pelo processo de migração

<?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>                  
A tag <service-endpoint> no exemplo anterior define "EchoEJB" como o nó de extremidade de serviço no nível de especificação J2EE 1.4 após a migração.

Migrando Beans Orientados a Mensagens

O Assistente para Migração do J2EE suporta a migração de beans orientados a mensagens do EJB 2.0 para o EJB 2.1.

Os beans orientados a mensagens foram introduzidos no EJB 2.0 para suportar o processamento das mensagens assíncronas de um JMS (Java Message Service). A especificação do EJB 2.1 expande a definição do bean orientado a mensagens para que possa suportar qualquer sistema de mensagens, não apenas JMS.

Nota: Os beans orientados a mensagens, que foram migrados do nível de especificação EJB 2.0 para EJB 2.1 e são implementados no WebSphere Application Server versão 6, devem ser implementados em um adaptador de recursos JCA (Java Connector Architecture) 1.5 em vez de uma porta listener (como no WebSphere Application Server versão 5). Você deve utilizar o Editor do Descritor de Implementação para alterar as configurações de ligação do WebSphere para beans orientados a mensagens do EJB 2.1 para utilizar o adaptador JCA. Consulte Configurando um Bean Orientado a Mensagens EJB 2.1 para Utilizar um Adaptador JCA.
Os artefatos do bean orientado a mensagens EJB 2.0 são:
  • acknowledgeMode
  • messageSelector
  • destinationType
  • subscriptionDurablity
Alguns dos elementos do bean orientado a mensagens EJB 2.0 são substituídos pelas propriedades activation-config. Os nomes de propriedades e os valores utilizados na propriedade activation-config para descrever o serviço de mensagens variam dependendo do tipo de serviço de mensagens utilizado. No entanto, o EJB 2.1 define um conjunto de propriedades fixas para beans orientados a mensagens com base em JMS.

O exemplo a seguir compara os elementos de um bean de amostra no EJB 2.0 com a aparência que os elementos terão no EJB 2.1.

Um exemplo de elementos do bean orientado a mensagens no 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>

Um exemplo de elementos do bean orientado a mensagens no 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>
Tarefas relacionadas
Configurando um Bean Orientado a Mensagens EJB 2.1 para Utilizar um Adaptador JCA
Referências relacionadas
Projetos da Web (Nível de Servlet 2.3 para Nível de Servlet 2.4)
Projetos do Conector (JCA 1.0 para JCA 1.5)
Serviços da Web (J2EE 1.3 para J2EE 1.4)
Migração do Nível de Especificação J2EE 1.3 para 1.4
Feedback
(C) Copyright IBM Corporation 2000, 2005. Todos os Direitos Reservados.