Llamada a un EJB (Enterprise Java Bean)

Puede llamar a un Enterprise Java Bean (EJB) desde un nodo JavaCompute.

Antes de empezar:
El ejemplo siguiente muestra cómo llamar a un EJB desde un nodo JavaCompute:
public class CallAckNoAckEJB_JavaCompute extends MbJavaComputeNode { 

		 public void evaluate(MbMessageAssembly inAssembly) throws MbException { 
                MbOutputTerminal out = getOutputTerminal("out"); 
                MbOutputTerminal alt = getOutputTerminal("alternate"); 

                MbMessage inMessage = inAssembly.getMessage(); 

                // crear nuevo mensaje 
                MbMessage outMessage = new MbMessage(inMessage); 
                MbMessageAssembly outAssembly = new MbMessageAssembly(inAssembly,outMessage); 

                try { 
                        // ---------------------------------------------------------- 
                        // Añadir código de usuario más abajo 
                
                        String response = null; 
                        String responseMessage = null; 
                                                
                        Properties properties = new Properties(); 
                        properties.put(Context.PROVIDER_URL, "iiop://localhost:2809"); 
                        properties.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.
WsnInitialContextFactory"); 
                
                        try { 
                            
                        		 Context initialContext = new InitialContext(properties); 
                                Object obj = initialContext.lookup("ejb/com/acme/ejbs/AckNoAckHome"); 
                                AckNoAckHome ejbHome = (AckNoAckHome)javax.rmi.PortableRemoteObject.
narrow(obj,AckNoAckHome.class); 
                                
                                AckNoAck ackNoAck = ejbHome.create(); 
                                responseMessage = ackNoAck.getAck(); 
                                response = "Ack"; 
                        } catch(Exception e) { 
                                responseMessage = e.getMessage(); 
                                response = "NoAck"; 
                        } 

                        MbElement cursor = outMessage.getRootElement().getFirstElementByPath("/XML/AckNoAck"); 
                        cursor.createElementAsLastChild(MbElement.TYPE_NAME,"Response",null); 
                        cursor.getLastChild().createElementAsLastChild(MbElement.TYPE_NAME,response,null); 
                        cursor.getLastChild().getLastChild().createElementAsLastChild(MbElement.TYPE_VALUE,null,
responseMessage); 
                                                
                        // Fin de código de usuario 
                        // ---------------------------------------------------------- 

                        // Lo siguiente sólo se deberá cambiar 
                        // si no se propaga el mensaje al terminal 'out' 
                        out.propagate(outAssembly); 

                } finally { 
                        // borrar el contenido de outMessage 
                        outMessage.clearMessage(); 
                } 
		 } 
} 
Conceptos relacionados
Visión general de flujos de mensajes
Carga de clases de nodo definido por el usuario
Carga de clases del nodo JavaCompute
Tareas relacionadas
Creación de código Java para un nodo JavaCompute
Desarrollar flujos de mensajes
Escribir Java
Referencia relacionada
Nodo JavaCompute
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última actualización : 2009-02-16 13:54:10

ac37120_