Chamando um Enterprise Java Bean

Você pode chamar um EJB (Enterprise Java Bean) a partir de um nó JavaCompute.

Antes de iniciar:
O exemplo a seguir mostra como chamar um EJB de um nó 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();

                // criar nova mensagem
                MbMessage outMessage = new MbMessage(inMessage);
                MbMessageAssembly outAssembly = new MbMessageAssembly(inAssembly,outMessage);

                try {
                        // ---------------------------------------------------------- 
                        // Incluir código do usuário abaixo
                
                        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); 
// Fim do código do usuário
                        // ---------------------------------------------------------- 

                        // O seguinte deve ser alterado somente
                        // se você não estiver propagando a mensagem para o terminal de 'saída'
                        out.propagate(outAssembly); 

                } finally {
                        // limpar a outMessage
                        outMessage.clearMessage();
                } 
		 } 
} 
Conceitos relacionados
Visão Geral de Fluxos de Mensagens
Carregamento de Classe do Nó Definido pelo Usuário
Carregamento de Classe do Nó JavaCompute
Tarefas relacionadas
Criando Código Java para um Nó JavaCompute
Desenvolvendo Fluxos de Mensagens
Gravando Java
Referências relacionadas
Nó JavaCompute
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:11:58

ac37120_