Segue abaixo a interface IDL de um servidor “Hello”, com apenas um método, e uma interface “HelloPlus”, que adiciona alguns métodos à interface “Hello”, com o intuito de demonstrar o uso de atributos, parâmetros de entrada e saída e de exceções.
module hello {
interface Hello {
string hello();
};
interface
HelloPlus: Hello {
exception InvalidParameter { string paramName; };
readonly attribute string welcome;
string helloName ( in string name ) raises ( InvalidParameter );
void helloOut ( out string helloMessage );
};
};
Salve a descrição de interface acima no arquivo hello.idl e a compile com o comando:
idlj -fall hello.idl
Note que foram geradas no diretório "hello" várias classes, dentre elas a stubs e skeletons deste servidor.
Agora devemos implementar o servidor. O arquivo HelloPlusImpl.java contém a implementação dos métodos especificados na interface IDL do servidor. O arquivo Servidor.java contém o código necessário para instanciar o servidor e registrá-lo no serviço de nomes. Salve estes dois arquivos no diretório "hello" criado pelo compilador IDL.
Compile todos os arquivos do servidor com o comando:
javac hello\*.java
O cliente CORBA (arquivo Cliente.java) localiza o servidor e faz chamadas aos seus métodos.
Compile o cliente com o comando:
javac Cliente.java
Primeiramente, inicie o ORB com o comando:
> start orbd
Em seguida, inicie o servidor:
> start java hello.Servidor
Finalmente, inicie o cliente com o comando:
> java Cliente
Tente também, com a ajuda de um colega, fazer a comunicação entre máquinas diferentes. Deixe o servidor rodando em uma máquina e inicie o cliente em outra máquina com o comando:
> java Cliente -ORBInitialHost <IP da máquina do servidor>