(ORB) new javax.naming.InitialContext().lookup("java:/JBossCorbaORB");
Um MBean é um componente plugável do JBoss. Vocês não precisam entender perfeitamente o que é um MBean, basta seguir esta ``receita de bolo'' que o EP de vocês deve funcionar dentro do JBoss. Criem uma interface (vazia mesmo):
public interface VideoRentalStoreServiceMBean extends org.jboss.system.ServiceMBean { }
Embora vocês possam alterar o nome desta interface, ela tem que ter o sufixo ``MBean''. Escrevam uma classe que implementa essa interface (deve ter o mesmo nome da interface, mas sem o sufixo ``MBean''):
public class VideoRentalStoreService extends org.jboss.system.ServiceMBeanSupport implements VideoRentalStoreServiceMBean { protected void startService() throws Exception { // O código que inicia o servidor vem aqui (sem ORB.run()). } protected void stopService() { // Se alguma coisa for executada antes de parar o servidor, coloque a aqui. } }
Dica: para compilar estas classes vocês irão precisar do arquivo $JBOSS_HOME/lib/jboss-system.jar no classpath. Vocês precisam também criar um arquivo chamado jboss-service.xml, com o seguinte conteúdo:
<?xml version="1.0" encoding="UTF-8"?> <server> <mbean code="videorentalstore.corba.impl.VideoRentalStoreService" name="jboss.ws:service=VideoRentalStoreService"> <depends>jboss:service=CorbaNaming</depends> <depends>jboss:service=TransactionManager</depends> </mbean> </server>
Troquem a classe em code pela classe (não a interface) do seu MBean. Agora basta empacotar tudo num .sar (service archive), que nada mais é do que um JAR com a extensão .sar. Apenas como sugestão, seu .sar pode ser organizado do seguinte modo:
videorental.sar |-- videorental-corba.jar (classes do EP de CORBA + MBean) |-- META-INF |-- jboss-service.xml
Uma dica: usem o ant para automatizar o empacotamento. Para implantar o .sar basta copiá-lo para o diretório de implantação do JBoss. Na configuração default do servidor de aplicações, esse diretório é $JBOSS_HOME/server/default/deploy. Vocês podem fazer isso com o servidor JBoss rodando (hot-deployment) ou não. Após a implantação, o seu EP de CORBA rodará dentro do servidor de aplicações e suas classes/objetos ficarão localmente acessíveis para um web service que também rode dentro do servidor.