<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-15221256</id><updated>2011-04-21T21:03:23.350-07:00</updated><title type='text'>Java Metal</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://javametal.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://javametal.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Paulo Henrique</name><uri>http://www.blogger.com/profile/09675521816689680676</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-15221256.post-116656088972414525</id><published>2006-12-19T12:28:00.000-08:00</published><updated>2006-12-19T18:48:32.383-08:00</updated><title type='text'>Salve!!</title><content type='html'>Fala galera, blz?! Putz quanto tempo!! Bom esse ano foi ph%$#%$#$%!!! Trabalho, Especialização, Curso aos sábados, Shows com a Rising Cross(o trem tá rendendo), Namorada e ainda arranjei tempo pra passar num concurso! É isso mesmo, agora sou Gestor de Tecnologia da Informação Estado de Goiás. Aêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêê!!!!!!!!!!!!!!!!!&lt;br /&gt;Na minha Especialização(&lt;a href="http://www.especializacao.info/"&gt;http://www.especializacao.info/&lt;/a&gt;) estou vendo umas coisas interessantes, tenho um professor lá que adora coisas "novas"(pelo menos pra mim) e uma delas que gostei muito foi o JMock(&lt;a href="http://www.jmock.org/"&gt;http://www.jmock.org/&lt;/a&gt;). O JMock serve para vc testar partes de sua aplicação que dependem de outras partes ou subsistemas que ainda não existem, daí com ele vc cria um Mock Object(um fantasma como dizia meu professor) desta parte que não existe. Exemplo, vc tem um objeto na camada de negócio que depende de um DAO que não existe(não criou ainda), mas vc precisa testá-lo(o objeto da camada de negócio). Daí vc cria um Mock Object de seu DAO(inexistente) e fala o que vc quer como retorno. Daí vc cria esse passa esse Mock Object para seu Objeto de Negócio(via dependency injection, factory sei lá, fica a gosto do freguês) e usa-o. Ótimo pra vc fazer teste de unidades. Muito doido! Vou fazer um exemplo e postá-lo aqui.&lt;br /&gt;&lt;br /&gt;A Paz!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15221256-116656088972414525?l=javametal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javametal.blogspot.com/feeds/116656088972414525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15221256&amp;postID=116656088972414525' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/116656088972414525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/116656088972414525'/><link rel='alternate' type='text/html' href='http://javametal.blogspot.com/2006/12/salve.html' title='Salve!!'/><author><name>Paulo Henrique</name><uri>http://www.blogger.com/profile/09675521816689680676</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15221256.post-114161643999598233</id><published>2006-03-05T19:33:00.000-08:00</published><updated>2006-03-05T19:40:40.006-08:00</updated><title type='text'>Rising UP e Grupo de Oração para Rockeiros</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2443/1402/1600/G.O.R.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/2443/1402/320/G.O.R.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Aí galera, é com grande alegria que venho informar estou de volta aos vocais da Rising Cross. Depois de um tempo de "férias", DEUS me inquietou muito e estou a servi-lo novamente através do Metal Cristão.&lt;br /&gt;&lt;br /&gt;Também gostaria de informar que irá acontecer no dia 18/03/2006 mais um grupo de oração para Rockeiros. O mesmo erá se realizar na Paróquia Santa Luzia(Novo Horizonte) a partir das 17:00. Estão todos convidados a conhecer este trabalho e fazer o movimento crescer para honra e glória de DEUS!!&lt;br /&gt;&lt;br /&gt;A Paz!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15221256-114161643999598233?l=javametal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javametal.blogspot.com/feeds/114161643999598233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15221256&amp;postID=114161643999598233' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/114161643999598233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/114161643999598233'/><link rel='alternate' type='text/html' href='http://javametal.blogspot.com/2006/03/rising-up-e-grupo-de-orao-para.html' title='Rising UP e Grupo de Oração para Rockeiros'/><author><name>Paulo Henrique</name><uri>http://www.blogger.com/profile/09675521816689680676</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15221256.post-114079574334823295</id><published>2006-02-24T07:42:00.000-08:00</published><updated>2006-02-24T07:42:23.366-08:00</updated><title type='text'>Ceremonya mixando dois CDs ao mesmo tempo</title><content type='html'>&lt;b&gt;Ceremonya mixando dois CDs ao mesmo tempo&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://whiplash.net"&gt;Publicado no www.whiplash.net - o mais completo site de rock e metal&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Como boa parte da galera já sabe, a banda católica de White Metal, CEREMONYA está trabalhando nos estúdios da CODIMUC, em Cachoeira Paulista-SP, na produção de dois CDs, um de Metal em inglês e um outro de Hard Rock/ Rock'N'Roll em português, com letras litúrgicas. A primeira fase do trabalho, que é a mixagem do disco em inglês, já está quase concluída. O CD foi batizado de "About The Changes" e terá doze músicas.&lt;br /&gt;&lt;br /&gt;O trabalho de finalização ficou a cargo de Ricardo Nagata, renomado produtor e técnico de som do estúdio Creative Sound, em São Paulo-SP. Além de grandes bandas de White Metal, como ETERNA e UNIÃO, Ricardo já trabalhou com vários outros nomes importantes do metal nacional como SHAAMAN, ANGRA, SYMBOLS, VERSOVER, IMAGO MORTIS, HANGAR, EYES OF SHIVA, HAMLET, etc. Sendo assim, após o término da mixagem, a banda segue com a finalização do disco em português.&lt;br /&gt;&lt;br /&gt;Você pode conferir no site &lt;a href="'http://www.codimuc.com.br'" target="'_blank'"&gt;www.codimuc.com.br&lt;/a&gt; fotos das gravações e mixagem do discos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15221256-114079574334823295?l=javametal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javametal.blogspot.com/feeds/114079574334823295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15221256&amp;postID=114079574334823295' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/114079574334823295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/114079574334823295'/><link rel='alternate' type='text/html' href='http://javametal.blogspot.com/2006/02/ceremonya-mixando-dois-cds-ao-mesmo.html' title='Ceremonya mixando dois CDs ao mesmo tempo'/><author><name>Paulo Henrique</name><uri>http://www.blogger.com/profile/09675521816689680676</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15221256.post-113758764298948881</id><published>2006-01-18T04:25:00.000-08:00</published><updated>2006-01-18T04:37:32.696-08:00</updated><title type='text'>Exercício para apoio/respiração - Vela</title><content type='html'>Bom galera, achei que seria legal postar meu primeiro post sobre técnica vocal com um exercício de apôio/respiração. Esses dias pra trás(antes de ontem) tava fazendo uns exercícios de respiração e aprendi um novo que é o exercício da vela.&lt;br /&gt;&lt;br /&gt;O exercício da vela consiste em vc ascender uma vela e colocar a um palmo de distância de sua boca. Daí vc inspira profundamente e tenta expirar sem que a chama da vela se movimente de maneira alguma. Para conseguir tal feito, vc deverá expirar como se estivesse pedindo para alguém fazer silêncio, saca? Ou seja, só sairá um fiozinho de ar de sua boca.&lt;br /&gt;&lt;br /&gt;Esse é um ótimo exercício para controle de ar na voz cantada.&lt;br /&gt;&lt;br /&gt;Bom, expero que gostem!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A Paz!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15221256-113758764298948881?l=javametal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javametal.blogspot.com/feeds/113758764298948881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15221256&amp;postID=113758764298948881' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/113758764298948881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/113758764298948881'/><link rel='alternate' type='text/html' href='http://javametal.blogspot.com/2006/01/exerccio-para-apoiorespirao-vela.html' title='Exercício para apoio/respiração - Vela'/><author><name>Paulo Henrique</name><uri>http://www.blogger.com/profile/09675521816689680676</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15221256.post-113744865198040763</id><published>2006-01-16T13:46:00.000-08:00</published><updated>2006-01-16T13:58:47.863-08:00</updated><title type='text'>Ooops...</title><content type='html'>Só agora me dei conta de quanto tempo não escrevo em meu blog, putz... É que tipo assim, mesmo estando de férias(é, isso "existe"(já me ligaram umas 1000 vezes do serviço mas tudo bem...)), ando ocupado pra caramba. Neste final de semana andei lá pros rumos de Abadia de Goiás procurando uma chácara para o próximo retiro do Rock In Cristo Goiânia(vai ser muito loco, aguardem!!).&lt;br /&gt;&lt;br /&gt;Mesmo estando longe do serviço, eu trouxe serviço pra casa(como eu sou jumento...) . Estou desenvolvendo uma aplicação distribuída em RMI(gostei do trem) lá pro serviço. Como andei pesquisando, achei muitos artigos interessantes que resolvi postar aqui para os possíveis leitores (imaginários?!) desfrutarem.&lt;br /&gt;&lt;br /&gt;São vários artigos de mestrado e até doutorado que andei lendo sobre computação distribuída e paralela lá da Universidade Federal de Pernambuco. Andei conversando até com um deles o Professor Sérgio Soares, muito gente boa.&lt;br /&gt;&lt;br /&gt;Bom, segue o link:&lt;br /&gt;http://twiki.cin.ufpe.br/twiki/bin/view/SPG&lt;br /&gt;&lt;br /&gt;Entrem no link Theses e desfrutem.&lt;br /&gt;&lt;br /&gt;A Paz!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15221256-113744865198040763?l=javametal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javametal.blogspot.com/feeds/113744865198040763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15221256&amp;postID=113744865198040763' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/113744865198040763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/113744865198040763'/><link rel='alternate' type='text/html' href='http://javametal.blogspot.com/2006/01/ooops.html' title='Ooops...'/><author><name>Paulo Henrique</name><uri>http://www.blogger.com/profile/09675521816689680676</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15221256.post-113137773502499003</id><published>2005-11-07T07:24:00.000-08:00</published><updated>2005-11-07T07:40:51.303-08:00</updated><title type='text'>Rock in Cristo Goiânia</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2443/1402/1600/flyer_rinc.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/2443/1402/320/flyer_rinc.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Fala galera, paz e bem!&lt;br /&gt;&lt;br /&gt;É o seguinte, dia 19/11/2005 vai ocorrer o primeiro Rock in Cristo em Goiânia. O Rock in Cristo é um evento Católico de rock que tem por objetivo a luta contra as drogas. E como arma nesta batalha é usado o bom e velho metal/rock (white metal). O evento não tem fins lucrativos e como ingreço é sugerido que levem 1kg de alimento não perecível. O evento irá iniciar com a santa missa as 13:30 e logo as 15:00 irão iniciar os shows com bandas de Goiânia e Brasília. Vou estar participando da missa. Vamos lá, bater cabeça com muita unção.&lt;br /&gt;&lt;br /&gt;Site: http://www.rockincristogyn.com.br/&lt;br /&gt;&lt;br /&gt;A Paz!!&lt;br /&gt;Paulo Henrique&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15221256-113137773502499003?l=javametal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javametal.blogspot.com/feeds/113137773502499003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15221256&amp;postID=113137773502499003' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/113137773502499003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/113137773502499003'/><link rel='alternate' type='text/html' href='http://javametal.blogspot.com/2005/11/rock-in-cristo-goinia.html' title='Rock in Cristo Goiânia'/><author><name>Paulo Henrique</name><uri>http://www.blogger.com/profile/09675521816689680676</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15221256.post-113015812921666108</id><published>2005-10-24T05:41:00.000-07:00</published><updated>2005-10-24T05:48:49.220-07:00</updated><title type='text'>Certificação Java Programmer</title><content type='html'>É galera, depois de muita correria e dedicação tirei minha certificação. Não achei a prova difícil. Deu tempo até de revisar...&lt;br /&gt;Meu score foi de 90%.&lt;br /&gt;&lt;br /&gt;Estou pensando em fazer um resumo. Vamos ver se meu tempo deixa...( -:&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15221256-113015812921666108?l=javametal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javametal.blogspot.com/feeds/113015812921666108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15221256&amp;postID=113015812921666108' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/113015812921666108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/113015812921666108'/><link rel='alternate' type='text/html' href='http://javametal.blogspot.com/2005/10/certificao-java-programmer.html' title='Certificação Java Programmer'/><author><name>Paulo Henrique</name><uri>http://www.blogger.com/profile/09675521816689680676</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15221256.post-112427701772064709</id><published>2005-08-17T04:06:00.000-07:00</published><updated>2005-08-17T04:10:17.730-07:00</updated><title type='text'>Dicas de ouro...</title><content type='html'>E aí galera, essa semana postaram um link muito bom, se não me engano no GUJ(Grupo de Usuários Java, www.guj.com.br), pirem:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;a target="_blank" href="http://www.java2s.com/"&gt;http://www.java2s.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Vale ouro...&lt;br /&gt;&lt;br /&gt;A Paz!!&lt;br /&gt;&lt;/tt&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15221256-112427701772064709?l=javametal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javametal.blogspot.com/feeds/112427701772064709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15221256&amp;postID=112427701772064709' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/112427701772064709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/112427701772064709'/><link rel='alternate' type='text/html' href='http://javametal.blogspot.com/2005/08/dicas-de-ouro.html' title='Dicas de ouro...'/><author><name>Paulo Henrique</name><uri>http://www.blogger.com/profile/09675521816689680676</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15221256.post-112394342394163303</id><published>2005-08-13T07:23:00.000-07:00</published><updated>2005-11-23T18:19:46.266-08:00</updated><title type='text'>Invocação Remota de Métodos (RMI) no TIGER</title><content type='html'>Tá aí pessoal, vou estar postando um tutorial que publiquei no JavaFree esses dias atrás, fiz algumas correções. Então lá vai:&lt;br /&gt;&lt;br /&gt; &lt;p class="MsoTitle"&gt;&lt;span style="font-size: 18pt;"&gt;Invocação Remota de Métodos (RMI) no TIGER&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 12pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;1 – Introdução&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-align: justify; text-indent: 35.4pt;"&gt;Meu primeiro contato com RMI, foi na faculdade há quase três anos atrás. E de lá pra cá muitas coisas mudaram em sua implementação. Então, me veio à necessidade de estudar sistemas distribuídos, decidindo voltar aos estudos de RMI. Foi quando me deparei que em “quase” todos os tutorais em que pegava pra relembrar e estudar, não obtinha sucesso em suas implementações. Daí foi quando decidi pesquisar a documentação da versão que estou usando agora (JDK 1.5.0_01), onde observei as “pequenas” mudanças feitas desde a época em que estudei na faculdade.&lt;/p&gt;     &lt;p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style=""&gt;1.1&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;– Objetivo&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-align: justify; text-indent: 35.4pt;"&gt;Este tutorial tem o objetivo de mostrar um “passo a passo” de como implementar uma simples aplicação distribuída com RMI no Tiger (Java 1.5.0 ou 5.0). E para fugir dos exemplos mais comumente encontrados, iremos fazer uma aplicação um pouco “diferente”, que também usa o mesmo host como cliente e servidor.&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="text-align: justify; text-indent: 35.4pt;"&gt;E uma das diferenças entre nossa aplicação e as outras mais comumente encontradas, é que ao invés de trafegarmos uma String de uma ponta a outra (Servidor para Cliente), iremos trafegar um *Bean, dando asas à imaginação de quem está aprendendo agora.&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-align: justify; text-indent: 0cm;"&gt;&lt;b style=""&gt;*Bean&lt;/b&gt; – Um Bean é uma classe serializável que segue determinadas regras, como métodos get e set para cada uma de suas propriedades (encapsulamento). &lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-align: justify; text-indent: 0cm;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;b style=""&gt;Obs.:&lt;/b&gt; Não é meu objetivo esgotar o assunto que diz respeito à tecnologia RMI, mas sim dar um startup ou quem sabe, tirar as dúvidas de muitas pessoas que estão meio que “perdidas” como eu estava.&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-indent: 0cm;"&gt;&lt;b style=""&gt;2 – Arquivos necessários&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-align: justify;"&gt;Nossa aplicação será composta dos seguintes arquivos:&lt;/p&gt;         &lt;p class="MsoBodyTextIndent" style="margin-left: 36pt; text-align: justify; text-indent: -18pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;-&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;MeuBean.Java – Objeto Serializável ao qual iremos trafegar através de invocação remota&lt;br /&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;-&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Servidor.Java – Interface remota.&lt;br /&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;-&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;ServidorImpl.Java – Classe servidora.Implementa a interface remota.&lt;br /&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;-&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Cliente.Java – Cliente que fará chamadas ao nosso objeto remoto (ServidorImpl).&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-indent: 0cm;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;b style=""&gt;3 – Passos para a construção&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;                   &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt; text-indent: 0cm;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;3.1 Implementar o &lt;span style="" lang="EN-US"&gt;Bean&lt;/span&gt;&lt;br /&gt;3.2 Definir a interface Remota&lt;br /&gt;3.3 Implementar o Servidor&lt;br /&gt;3.4 Implementar o Cliente&lt;br /&gt;3.5 Compilar nossas classes/interface&lt;br /&gt;3.6 Rodar o Servidor&lt;br /&gt;3.7 Rodar o Cliente&lt;br /&gt;3.8 Conclusão&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-indent: 0cm;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;Então, abra seu editor predileto e mãos á massa...&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-indent: 0cm;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;b style=""&gt;3.1 - Implementar o Bean&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-align: justify; text-indent: 35.4pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;O nosso Bean será uma classe simples com duas propriedades: Código e Descrição. Mas para que ele possa ser trafegado na rede, o mesmo deve ser serializável. E para isso, basta que nosso Bean implemente a interface Serializable, presente no pacote java.io.&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt; text-indent: 0cm;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;Segue abaixo o código do mesmo:&lt;/p&gt;   &lt;div align="center"&gt;  &lt;table class="MsoNormalTable" style="background: rgb(41, 67, 212) none repeat scroll 0%; width: 435.45pt; margin-left: -45.45pt; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;" border="0" cellpadding="0" cellspacing="1" width="581"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="padding: 6pt; background: rgb(235, 237, 247) none repeat scroll 0%; width: 434.05pt; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;" width="579"&gt;   &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;import   java.io.Serializable;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;public   class MeuBean implements Serializable{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;      &lt;/span&gt;private int iCodigo;&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;private String sDescricao;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;br /&gt;      &lt;/span&gt;public MeuBean(){}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;                  &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;      &lt;/span&gt;public MeuBean(int codigo, String   descricao){&lt;br /&gt;&lt;span style=""&gt;                  &lt;/span&gt;iCodigo = codigo;&lt;br /&gt;&lt;span style=""&gt;                  &lt;/span&gt;sDescricao = descricao;&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;span style=""&gt;      &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;            &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;      &lt;/span&gt;public void setCodigo(int codigo){&lt;br /&gt;&lt;span style=""&gt;                  &lt;/span&gt;iCodigo = codigo;&lt;span style=""&gt;&lt;br /&gt;      &lt;/span&gt;}&lt;span style=""&gt;     &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;            &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;      &lt;/span&gt;public int getCodigo(){&lt;br /&gt;&lt;span style=""&gt;                  &lt;/span&gt;return iCodigo;&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;span style=""&gt;      &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;         &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;      &lt;/span&gt;public void setDescricao(String   descricao){&lt;br /&gt;&lt;span style=""&gt;                  &lt;/span&gt;&lt;/span&gt;sDescricao =   descricao;&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;/p&gt;         &lt;p class="MsoBodyTextIndent"&gt;&lt;span style=""&gt;      &lt;/span&gt;public   String getDescricao(){&lt;br /&gt;&lt;span style=""&gt;                  &lt;/span&gt;return   sDescricao;&lt;/p&gt;      &lt;p class="MsoBodyTextIndent"&gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;br /&gt;}&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;     &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt; text-indent: -18pt;"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style=""&gt;3.2&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;- Definindo a interface remota&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-align: justify; text-indent: 35.4pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;A interface remota é a alma de nossa aplicação, pois ela que vai conter as assinaturas dos métodos que nosso objeto remoto vai implementar e vai ser através dela que nosso cliente vai “enxergar” todos os métodos que estão disponíveis remotamente. E para que ela possa se dar a tal, ela deve implementar a interface &lt;i&gt;Remote,&lt;/i&gt; disponível no pacote java.rmi.&lt;/p&gt;           &lt;p class="MsoBodyTextIndent"&gt;Como nossa interface é remota e vai servir de “espelho” para nosso objeto remoto, pode haver problemas de conexão ou coisas do gênero, portanto, todos os métodos de nossa interface devem estar preparados para lançar uma exceção caso tenhamos algum problema. Então, todos os métodos de nossa interface deverão lançar &lt;i&gt;RemoteException, &lt;/i&gt;disponível também no pacote java.rmi.&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;Segue abaixo o código da nossa interface remota Servidor:&lt;/p&gt;   &lt;div align="center"&gt;  &lt;table class="MsoNormalTable" style="background: rgb(41, 67, 212) none repeat scroll 0%; width: 458pt; margin-left: -68pt; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;" border="0" cellpadding="0" cellspacing="1" width="611"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="padding: 6pt; background: rgb(235, 237, 247) none repeat scroll 0%; width: 456.6pt; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;" width="609"&gt;               &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;import   java.rmi.Remote;&lt;br /&gt;import   java.rmi.RemoteException;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoBodyTextIndent" style="margin-left: 21pt; text-indent: 14.4pt;"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;public   interface Servidor extends Remote{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoBodyTextIndent" style="margin-left: 21pt; text-indent: 14.4pt;"&gt;&lt;span style="" lang="EN-US"&gt;public MeuBean getBean() throws   RemoteException;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent"&gt;}&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;   &lt;p class="MsoBodyTextIndent" style="text-indent: 0cm;"&gt;&lt;span style=""&gt;     &lt;/span&gt;&lt;span style=""&gt;       &lt;/span&gt;Como podemos observar, nossa interface tem apenas um método assinado e o mesmo retorna um objeto do tipo MeuBean e, como já falado, está preparado para lançar uma exceção do tipo RemoteException.&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="text-indent: 35.4pt;"&gt;Como nosso Bean não é um objeto remoto, ou seja, não herda de java.rmi.Remote, temos então que o retorno de nosso método getBean () será por valor, pois não geraremos um Stub* para o mesmo.&lt;/p&gt;       &lt;p class="MsoBodyTextIndent" style="text-indent: 0cm;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;b&gt;*Stub&lt;/b&gt; – Funciona como um Proxy entre o cliente em nosso objeto remoto. Também é ele que codifica e decodifica (marshall e unmarshall) os parâmetros e retornos trafegados entre o cliente e o servidor.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="text-indent: 0cm;"&gt;&lt;b style=""&gt;3.3 - Implementar o Servidor&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-align: justify; text-indent: 35.4pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;Nosso servidor será o objeto em que acessaremos remotamente para invocar seu(s) método(s). Para isso, ele deve implementar nossa interface remota, definida no tópico anterior, e seguir alguns passos:&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="margin-left: 53.4pt; text-indent: 0cm;"&gt;&lt;b&gt;A&lt;/b&gt; - Criar e exportar nosso objeto remoto&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="margin-left: 53.4pt; text-indent: 0cm;"&gt;&lt;b&gt;B&lt;/b&gt; - Registrar nosso objeto remoto com o RMI Registry&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-indent: 0cm;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;Segue abaixo o código do servidor:&lt;/p&gt;   &lt;div align="center"&gt;  &lt;table class="MsoNormalTable" style="background: rgb(41, 67, 212) none repeat scroll 0%; width: 488.4pt; margin-left: -98.4pt; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;" border="0" cellpadding="0" cellspacing="1" width="651"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt; &lt;td style="padding: 6pt; background: rgb(235, 237, 247) none repeat scroll 0%; width: 487pt; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;" width="649"&gt;                  &lt;p class="MsoBodyTextIndent" style="text-indent: 0cm;"&gt;&lt;span style="" lang="EN-US"&gt;import java.rmi.registry.Registry;&lt;br /&gt;import java.rmi.registry.LocateRegistry;&lt;br /&gt;import java.rmi.RemoteException;&lt;br /&gt;import java.rmi.AlreadyBoundException;&lt;br /&gt;import java.rmi.server.UnicastRemoteObject;&lt;br /&gt;import java.io.IOException;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoBodyTextIndent" style="text-indent: 0cm;"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;public class ServidorImpl implements   Servidor{&lt;span style=""&gt;           &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;      private   MeuBean obj;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;         &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt;"&gt;&lt;span style="" lang="EN-US"&gt;public   ServidorImpl(){&lt;br /&gt;      obj = new MeuBean(1, "Hello   RMI!!");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;         &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt;"&gt;&lt;span style="" lang="EN-US"&gt;      inicia();&lt;br /&gt;}&lt;br /&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;         &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;      public   MeuBean getBean(){&lt;br /&gt;            return obj;&lt;br /&gt;      }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;         &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt;"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;public   void inicia(){&lt;/span&gt;&lt;br /&gt;      try{&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt;"&gt;&lt;span style=""&gt;            &lt;/span&gt;//Exporta o objeto remoto&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt;"&gt;&lt;span style=""&gt;         &lt;/span&gt;&lt;span style=""&gt;   &lt;/span&gt;Servidor stub = (Servidor)   UnicastRemoteObject.exportObject (this, 0);&lt;/p&gt;      &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt;"&gt;&lt;span style=""&gt;         &lt;br /&gt;            &lt;/span&gt;//Liga o stub do objeto remoto no registro, e inicia o   RMIRegistry na porta 1000&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt;"&gt;&lt;span style=""&gt;           &lt;/span&gt;&lt;span style="" lang="EN-US"&gt;Registry registry = LocateRegistry.createRegistry(1000); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt;"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;//Dá   um nome pra ele no registro&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt;"&gt;&lt;span style=""&gt;            &lt;/span&gt;registry.bind (“Servidor", stub);&lt;/p&gt;                              &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="" lang="EN-US"&gt;System.out.println   ("Servidor iniciado…");&lt;span style=""&gt;&lt;/span&gt;&lt;br /&gt;      }catch(RemoteException Re){&lt;br /&gt;&lt;span style=""&gt;            &lt;/span&gt;System.out.println(Re.getMessage());&lt;br /&gt;      }catch(AlreadyBoundException ABe){&lt;br /&gt;&lt;span style=""&gt;            &lt;/span&gt;System.out.println(ABe.getMessage());&lt;br /&gt;      }catch(IOException IOe){&lt;br /&gt;&lt;span style=""&gt;            &lt;/span&gt;System.out.println(IOe.getMessage());&lt;br /&gt;      }&lt;span style=""&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;      }&lt;/span&gt;&lt;/p&gt;               &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;      public   static void main(String args[]){&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;            new ServidorImpl ();&lt;span style=""&gt;   &lt;/span&gt;&lt;br /&gt;      }&lt;br /&gt;}&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;     &lt;p class="MsoBodyTextIndent" style="text-align: justify; text-indent: 35.4pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;Como nossa classe ServidorImpl implementa a interface Servidor, então por obrigação implementamos o método getBean() presente da interface. Se você observar no método getBean() da classe ServidorImpl, verás que não está assinando que pode lançar RemoteException ou nenhuma outra exceção. Isso se deve ao fato de que a implementação de nosso método não lança RemoteException e nenhuma outra exceção checada.&lt;/p&gt;         &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt; text-indent: 0cm;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;b&gt;A&lt;/b&gt; - Criar e exportar nosso objeto remoto&lt;/p&gt; &lt;p class="MsoBodyTextIndent" style="text-align: justify; text-indent: 35.4pt;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;br /&gt;Para que tenhamos o serviço disponível, ou seja, o objeto pronto para receber chamadas remotas, criaremos uma instância do mesmo e exportaremos para a Java RMI Runtime e aí sim nosso objeto estará pronto para receber chamadas remotas.&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;Para isso, em nosso método inicia() temos:&lt;/p&gt;   &lt;table class="MsoNormalTable" style="border: medium none ; background: rgb(235, 237, 247) none repeat scroll 0%; margin-left: 23.4pt; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 468pt;" valign="top" width="624"&gt;   &lt;p class="MsoBodyTextIndent" style="margin-left: 35.4pt; text-indent: 35.4pt;"&gt;Servidor   stub = (Servidor) UnicastRemoteObject.exportObject (this, 0);&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;     &lt;p class="MsoBodyTextIndent" style="text-align: justify; text-indent: 0cm;"&gt;&lt;span style=""&gt;               &lt;br /&gt;      &lt;/span&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style="font-family: georgia;font-size:100%;" &gt;O método estático &lt;code&gt;&lt;span style="font-size: 10pt;"&gt;UnicastRemoteObject.exportObject, &lt;/span&gt;&lt;/code&gt;&lt;code&gt;exporta&lt;/code&gt;&lt;code&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;span style="font-family: georgia;font-size:100%;" &gt;nosso objeto remoto (this, 0) em uma porta TCP anônima, devolvendo um Stub (do objeto remoto) ao qual passaremos para o cliente fazer chamadas remotas. O Stub retornado, implementa a mesma estrutura da interface remota, referenciando o objeto remoto e adicionando informações como host e porta para conexão.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;       &lt;p class="MsoBodyTextIndent" style="text-align: justify; text-indent: 0cm;"&gt;&lt;code&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: georgia;"&gt;Uma das melhorias no Tiger está bem aqui nesta parte. Quando uma aplicação exporta o objeto remoto e não encontra &lt;/span&gt;&lt;a style="font-family: georgia;" name="OLE_LINK1"&gt;as classes de Stub&lt;/a&gt;&lt;span style="font-family: georgia;"&gt;, que eram e são necessárias nas versões anteriores, automaticamente é instanciado um objeto do tipo &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size: 10pt; font-family: georgia;"&gt;java.lang.reflect.Proxy &lt;/span&gt;&lt;span style="font-family: georgia;"&gt;que será um&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: georgia;"&gt; &lt;/span&gt;&lt;span style="font-family: georgia;"&gt;Stub para nosso objeto remoto, não necessitando assim d&lt;/span&gt;&lt;code style="font-family: georgia;"&gt;as classes de Stub.&lt;/code&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoBodyTextIndent" style="text-align: justify; text-indent: 35.4pt;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;b style=""&gt;&lt;span style=""&gt;Obs.:&lt;/span&gt;&lt;/b&gt;&lt;span style=""&gt; Se seus objetos remotos tiverem clientes rodando em máquinas virtuais em versões anteriores ao Tiger, será necessário gerar as classes de Stub e talvez Esqueletons para os mesmos com o compilador &lt;b style=""&gt;rmic&lt;/b&gt;.&lt;/span&gt;&lt;code&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt; text-indent: 0cm;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;b&gt;B&lt;/b&gt; - Registrar nosso objeto remoto e iniciar RMI Registry&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="text-indent: 35.4pt;"&gt;Para que nosso cliente consiga fazer chamadas ao nosso objeto remoto, faz-se necessário que ele obtenha o Stub do objeto remoto, para isso temos que registrar nosso objeto remoto através do Stub do mesmo e nomeá-lo para que possamos o localizar o registro no servidor.&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-align: justify; text-indent: 35.4pt;"&gt;&lt;span style=""&gt;          &lt;/span&gt;&lt;br /&gt;Para registrar o Stub de nosso objeto remoto, é usado o RMI registry. O RMI registry é o serviço de nomes que vai disponibilizar a referência remota para o Stub de nosso objeto remoto.&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="text-align: justify; text-indent: 35.4pt;"&gt;Estando nosso objeto remoto registrado, nossos clientes podem fazer lookup (busca) do objeto pelo nome do mesmo, obtendo a referência e finalmente invocar seus métodos remotos.&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt; text-indent: 0cm;"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;br /&gt;Para fazermos isso, temos o seguinte código:&lt;/p&gt;   &lt;table class="MsoNormalTable" style="border: medium none ; background: rgb(235, 237, 247) none repeat scroll 0%; margin-left: 23.4pt; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 468pt;" valign="top" width="624"&gt;   &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt;"&gt;&lt;span style=""&gt;                       &lt;/span&gt;&lt;span style=""&gt;    &lt;/span&gt;Registry registry = &lt;span style="" lang="EN-US"&gt;LocateRegistry.createRegistry(1000);&lt;/span&gt;&lt;span style=""&gt;                   &lt;/span&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="text-indent: 0cm;"&gt;&lt;span style=""&gt;                        &lt;/span&gt;&lt;span style=""&gt;       &lt;/span&gt;registry.bind (“&lt;code&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;Servidor&lt;/span&gt;&lt;/code&gt;",   stub);&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;     &lt;p class="MsoBodyTextIndent" style="text-align: justify; text-indent: 35.4pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: georgia;"&gt;O método estático LocateRegistry.createRegistry (1000) retorna um Stub que implementa &lt;/span&gt;&lt;code style="font-family: georgia;"&gt;&lt;i&gt;java.rmi.registry.Registry&lt;/i&gt;&lt;/code&gt;&lt;code style="font-family: georgia;"&gt;, “avisa” o registro que receberemos invocações e inicia o RMI Registry na porta especificada, no caso a 1000.O método bind é quem relaciona (liga) nosso Stub a um nome (“Servidor”&lt;/code&gt;&lt;span style="font-family: georgia;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: georgia;"&gt; ao qual deverá ser chamado por invocação remota.&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-indent: 0cm;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;b style=""&gt;3.4 - Implementar o Cliente&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-align: justify; text-indent: 35.4pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;O nosso cliente será o responsável por fazer as chamadas remotas ao nosso objeto remoto. Para isso, ele deve obter o Stub de nosso objeto remoto no servidor fazendo a chamada pelo nome atribuído ao mesmo, e então fazer invocações remotas aos métodos remotos disponíveis através do Stub. Mas para que nosso cliente possa obter nosso Bean e saber quais são os métodos que estão disponíveis a ele, faz-se necessário que ele conheça nossa classe Bean e nossa interface remota. E para isso basta que ele tenha uma cópia de nossa interface remota (Servidor) e de nosso Bean (MeuBean).&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="text-indent: 0cm;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;Segue o código do cliente:&lt;/p&gt;   &lt;div align="center"&gt;  &lt;table class="MsoNormalTable" style="background: rgb(41, 67, 212) none repeat scroll 0%; width: 497pt; margin-left: -117.3pt; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;" border="0" cellpadding="0" cellspacing="1" width="663"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt; &lt;td style="padding: 6pt; background: rgb(235, 237, 247) none repeat scroll 0%; width: 495.6pt; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;" width="661"&gt;            &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;import   java.rmi.registry.LocateRegistry;&lt;br /&gt;import   java.rmi.registry.Registry;&lt;br /&gt;import   java.rmi.RemoteException;&lt;br /&gt;import   java.rmi.NotBoundException;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;     &lt;/span&gt;&lt;br /&gt;public   class Cliente {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;private Cliente() {}&lt;span style=""&gt;    &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;public static void main(String[]   args){&lt;span style=""&gt;   &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;span style=""&gt;       &lt;/span&gt;MeuBean bean;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;span style=""&gt;       &lt;/span&gt;try{&lt;span style=""&gt;&lt;br /&gt;                     &lt;/span&gt;Registry registry =   LocateRegistry.getRegistry("localhost", 1000);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;    &lt;/span&gt;Servidor stub = (Servidor) registry.lookup   (“Servidor");&lt;/p&gt;      &lt;p class="MsoBodyTextIndent"&gt;&lt;span style=""&gt;                  &lt;/span&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="" lang="EN-US"&gt;bean = stub.getBean();&lt;span style=""&gt;                    &lt;/span&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;                        &lt;p class="MsoBodyTextIndent"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;                  &lt;/span&gt;&lt;span style=""&gt;    &lt;/span&gt;System.out.println("Resposta: "   + bean.getDescricao());&lt;span style=""&gt;    &lt;br /&gt;      &lt;/span&gt;&lt;span style=""&gt;            &lt;/span&gt;}catch(RemoteException Re){&lt;br /&gt;&lt;span style=""&gt;                             &lt;/span&gt;System.out.println(Re.getMessage());&lt;br /&gt;&lt;span style=""&gt;                  &lt;/span&gt;}catch(NotBoundException NBe){&lt;br /&gt;&lt;span style=""&gt;                             &lt;/span&gt;System.out.println(NBe.getMessage());&lt;br /&gt;&lt;span style=""&gt;                  &lt;/span&gt;}&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;       &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;      &lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;     &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-family: georgia;"&gt;O cliente primeiro obtém o Stub do registro através do método estático &lt;/span&gt;&lt;code style="font-family: georgia;"&gt;&lt;span style="font-size: 10pt;"&gt;LocateRegistry.getRegistry&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family: georgia;"&gt; &lt;/span&gt;&lt;code style="font-family: georgia;"&gt;passando como parâmetro o host e a porta*. Depois invoca o método remoto &lt;/code&gt;&lt;span style="font-size: 10pt; font-family: georgia;"&gt;registry.lookup&lt;/span&gt;&lt;span style="font-family: georgia;"&gt; , passando como parâmetro o nome ao qual foi registrado nosso objeto remoto no servidor, para obter o Stub. &lt;/span&gt;&lt;code style="font-family: georgia;"&gt;Como em nosso exemplo estamos executando o cliente e o servidor mesma máquina, foram passados como parâmetros o host “localhost” e a porta 1000, que poderia ser outra. Mas se seu servidor estiver funcionando em um host que não seja o localhost, basta colocar o nome da máquina ou o IP da mesma no local do host.&lt;/code&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify; text-indent: 35.4pt;"&gt;Então já que já temos nosso canal de comunicação com o servidor, basta-nos agora invocar o método remoto getBean (). Então através do método getBean () obteremos uma &lt;u&gt;cópia&lt;/u&gt; de nosso bean que foi instanciado lá no servidor.&lt;/p&gt;     &lt;p class="MsoNormal" style="text-indent: 35.4pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;b style=""&gt;*Obs.: &lt;/b&gt;Se não for especificada nenhuma porta, o RMI Registry rodará por padrão na porta 1099.&lt;/p&gt;     &lt;p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style=""&gt;3.5&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;- Compilar nossas classes/interface&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;           &lt;p class="MsoNormal" style="margin-left: 21pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;javac MeuBean.java&lt;br /&gt;javac Servidor.java&lt;br /&gt;javac ServidorImpl.java&lt;br /&gt;javac Cliente.java&lt;/p&gt;     &lt;p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style=""&gt;3.6&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;- Rodar o servidor&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;     &lt;p class="MsoNormal" style="margin-left: 21pt;"&gt;     java ServidorImpl&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-indent: 35.4pt;"&gt;Deverá sair em sua console a seguinte mensagem:&lt;/p&gt;   &lt;p class="MsoNormal" style="text-indent: 35.4pt;"&gt;Servidor iniciado...&lt;/p&gt;       &lt;p class="MsoNormal" style="margin-left: 18pt; text-indent: 17.4pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;A partir de agora seu servidor estará pronto para receber requisições.&lt;br /&gt;O servidor ficará rodando até que o usuário decida finalizá-lo, geralmente matando o processo (CTRL + C).&lt;/p&gt;     &lt;p class="MsoBodyTextIndent" style="margin-left: 18pt; text-indent: -18pt;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;br /&gt;&lt;!--[if !supportLists]--&gt;&lt;b style=""&gt;&lt;span style=""&gt;3.7&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;- Rodar o Cliente&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;       &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;span style="" lang="EN-US"&gt;            java&lt;/span&gt; Cliente&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-indent: 35.4pt;"&gt;E pronto, deve sair em seu console a seguinte mensagem:&lt;/p&gt;   &lt;p class="MsoBodyTextIndent" style="text-indent: 35.4pt;"&gt;Resposta: Hello RMI!!&lt;/p&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;b style=""&gt;3.8 – Conclusão&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;  &lt;p class="MsoNormal" style="text-indent: 35.4pt;"&gt;Bom pessoal, esse é o meu primeiro tutorial e espero ter atingido, sanado dúvidas ou até iniciado muitos “javeiros” nesta maravilha chamada RMI.&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="" lang="EN-US"&gt;Links úteis&lt;/span&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="" lang="EN-US"&gt;Download do Tiger:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-indent: 35.4pt;"&gt;&lt;span style="" lang="EN-US"&gt;&lt;a href="http://java.sun.com/j2se/1.5.0/download.jsp"&gt;http://java.sun.com/j2se/1.5.0/download.jsp&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="" lang="EN-US"&gt;Tutorial sobre JavaBeans&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="" lang="EN-US"&gt;&lt;a href="http://www.jspbrasil.com.br/conteudo/tutoriais/javabeans.pdf"&gt;http://www.jspbrasil.com.br/conteudo/tutoriais/javabeans.pdf&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Gerar Stub Files e rmic&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/b&gt;&lt;span style=""&gt;&lt;a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/rmic.html"&gt;http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/rmic.html&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Faq de RMI e Serialização&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/b&gt;&lt;a href="http://java.sun.com/j2se/1.5.0/docs/guide/rmi/faq.html"&gt;http://java.sun.com/j2se/1.5.0/docs/guide/rmi/faq.html&lt;/a&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Tutorial da Sun sobre RMI&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;a href="http://java.sun.com/j2se/1.5.0/docs/guide/rmi/hello/hello-world.html"&gt;&lt;span style="font-weight: normal;"&gt;http://java.sun.com/j2se/1.5.0/docs/guide/rmi/hello/hello-world.html&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Documentação RMI Java 1.5&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/b&gt;&lt;span style=""&gt;&lt;a href="http://java.sun.com/j2se/1.5.0/docs/guide/rmi/index.html"&gt;http://java.sun.com/j2se/1.5.0/docs/guide/rmi/index.html&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;h1&gt;&lt;span style="font-size:85%;"&gt;Especificação RMI Java 1.5&lt;/span&gt;&lt;/h1&gt;   &lt;p class="MsoNormal" style="text-indent: 35.4pt;"&gt;&lt;a href="http://java.sun.com/j2se/1.5.0/docs/guide/rmi/spec/rmiTOC.html"&gt;http://java.sun.com/j2se/1.5.0/docs/guide/rmi/spec/rmiTOC.html&lt;/a&gt;&lt;span style=""&gt;         &lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;               &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b&gt;________________________________&lt;br /&gt;Paulo Henrique Borges Melo&lt;br /&gt;Sun Certified Java Programmer&lt;br /&gt;Bacharel em Ciência da Computação&lt;br /&gt;“Que a cruz sagrada seja minha luz!!”&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15221256-112394342394163303?l=javametal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javametal.blogspot.com/feeds/112394342394163303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15221256&amp;postID=112394342394163303' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/112394342394163303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/112394342394163303'/><link rel='alternate' type='text/html' href='http://javametal.blogspot.com/2005/08/invocao-remota-de-mtodos-rmi-no-tiger.html' title='Invocação Remota de Métodos (RMI) no TIGER'/><author><name>Paulo Henrique</name><uri>http://www.blogger.com/profile/09675521816689680676</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15221256.post-112351341508208202</id><published>2005-08-08T07:55:00.000-07:00</published><updated>2005-08-08T12:39:08.763-07:00</updated><title type='text'></title><content type='html'>Bom galera, este é meu primeiro post. Aqui vou estar postando todos os meus projetos e dicas de duas de minhas paixões: Java e Heavy Metal!&lt;br /&gt;Sobre Java vou estar postando alguns tutoriais de minha autoria e dicas.&lt;br /&gt;Agora sobre o bom e velho Metal, vou estar postando notícias e por que não algumas dicas de técnica vocal. Não sou um Fabio Lione, mas do pouco que sei posso estar compartilhando.&lt;br /&gt;&lt;br /&gt;Bom de início acho que está bom. ( :&lt;br /&gt;&lt;br /&gt;A Paz!!&lt;br /&gt;Paulo Henrique&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15221256-112351341508208202?l=javametal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javametal.blogspot.com/feeds/112351341508208202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15221256&amp;postID=112351341508208202' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/112351341508208202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15221256/posts/default/112351341508208202'/><link rel='alternate' type='text/html' href='http://javametal.blogspot.com/2005/08/bom-galera-este-meu-primeiro-post.html' title=''/><author><name>Paulo Henrique</name><uri>http://www.blogger.com/profile/09675521816689680676</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
