(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.