Caros amigos
Sou grato pela ajuda de todos voces, e acredito estar bem perto da solucao
definitiva do meu problema.
Instalei o Personal Web Server em minha maquina, no diretorio C:\WEBSHARE
O diretorio raiz do web server, e c:\webshare\wwwroot
A variavel CLASSPATH = %CLASSPATH%;C:\webshare\wwwroot
Configurei meu endereco IP local para 192.168.0.1
Assim, se digitar este endereco no browser eu abrirei uma pagina no
diretorio c:\webshare\wwwroot
Abro uma janela do MS-DOS para comecar o processo de compilacao
cd\mysrc // onde estao os programas em java
javac Hello.java
javac HelloImpl.java
rmic HelloImpl // gerando o stub
// transferindo para o diretorio raiz do servidor web
Copy Hello*.class \webshare\wwwroot
Del Hello*.class
Abro uma nova janela do MS-DOS
set classpath= // desconfigura o CLASSPATH nesta janela
start rmiregistry // tudo bem ate aqui
Retorno a primeira janela
java -Djava.rmi.server.codebase=http://192.168.0.1/ HelloImpl
apos alguns segundos aparece uma tela cheia de mensagens de erro:
HelloImpl err: access denied (java.net.SocketPermission 192.168.0.1:1099
connect, resolve)
Aparecem outras mensagens, mas acho que esta e a principal.
Este e o programa HelloImpl.java que provoca a mensagem.
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.RMISecurityManager;
import java.rmi.server.UnicastRemoteObject;
public class HelloImpl extends UnicastRemoteObject
implements Hello {
public HelloImpl() throws RemoteException {
super();
}
public String sayHello() {
return "Hello World!";
}
public static void main(String args[]) {
// Create and install a security manager
if (System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
try {
HelloImpl obj = new HelloImpl();
// Bind this object instance to the name "HelloServer"
******************* aparentemente o problema ocorre aqui
Naming.rebind("//192.168.0.1:1099/HelloServer", obj);
*********************************************
System.out.println("HelloServer bound in registry");
} catch (Exception e) {
System.out.println("HelloImpl err: " + e.getMessage());
e.printStackTrace();
}
}
}
>From: "Luis Fernando" <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: [EMAIL PROTECTED]
>Subject: RE: [SouJava-J] Problemas com RMI
>Date: Wed, 22 Mar 2000 04:53:10 GMT
>
>
>
>Meu caro,
>
>Agradeco pelos comentarios, mas o motivo de eu ter dado esse exemplo,
>foi pelo fato de jah ter executado o problema assim e TER FUNCIONADO.
>Falando em erro, sua opcao para fazer o acesso localmente eh totalmente
>impossivel, pois se trata de uma Applet que NAO PODE SE COMUNICAR AO NAO
>SER COM O SERVIDOR QUE A ORIGINOU.O uso do jswdk eh indispensavel nesse
>caso.
>A sintaxe no comando que voce diz nao citar a classe a ser ivocada, cita
>claramente o arquivo HelloImpl.class NAO?!?!
>java -Djava.rmi.server.codebase="http://localhost:8080/mysrc/HelloImpl"<-
>
>Que por sinal foi tirada do tutorial de rmi da sun que segue abaixo:
>
>"The following command shows how to start the HelloImpl server, specifying
>this property:
>
>java –Djava.rmi.server.codebase=http://myhost/~myusrname/codebase/
>examples.hello.HelloImpl &
>Note – The trailing / in the codebase URL must be specified.
>A stub class is dynamically loaded into a client’s virtual machine only
>when the class is not already available locally."
>
> Ao que me parece ao localizar a classe no servidor HelloImpl,
>automaticamente procura pelo stub no mesmo diretorio, que tambem eh
>encontrado(desde que esteja lah, of course).
>
> Tutorial esse que tenho em pdf e terei prazer em enviar a lista se for de
>interesse de todos.
>
>Later,
>
>Luis Fernando.
>
>
>
>>
>>Pessoal, estamos confundindo uma coisa basica...
>>a linha de comando:
>>
>>java -Djava.rmi.server.codebase="http://localhost:8080/mysrc/HelloImpl
>>
>>E que estah TOTALMENTE ERRADA!
>>
>>O erro que o nosso amigo esta tendo eh no momento de executar o objeto
>>servidor, isto se da por que o rmiregistry nao consegue localizar o stub,
>>e
>>isso ocorre por que a propriedade java.rmi.server.codebase esta totalmente
>>errada, alem disso, a sintaxe do comando nem sequer indica a classe a ser
>>invocada. Por isso, como ja disso no meu primeiro e-mail sobre o assunto,
>>ai
>>vai a resposta para ESTE problema (voce provavelmente vai ter outros
>>depois
>>de resolver este)
>>
>>java -Djava.rmi.server.codebase=file:///c:/mysrc HelloImpl
>>
>>A propriedade esta setada para o seu diretorio c:\mysrc. Isso indica que
>>os
>>arquivos de classes, inclusive os stubs devem estar neste diretorio.
>>O uso de file:/// eh feito visto que voce nao esta usando nenhum servidor
>>web. Isso significa que se voce rodar um aplicacao cliente nesta mesma
>>maquina, ela vai funcionar.
>
>Nao, Nao vai. O acesso eh feito por uma Applet.Tem que ser remoto.
>
>>Se voce criar um jar com uma aplicacao cliente
>>que inclua o stub e rodar de outra maquina, ela vai funcionar. CONTUDO, se
>>voce tentar rodar uma aplicacao cliente em uma maquina que NAO CONTENHA O
>>STUB NO CLASSPATH, NAO VAI FUNCIONAR.
>>Isso acontece por que o download dinamico do stub necessita do protocolo
>>http, ou pelo menos uma parte dele, por isso voce deveria usar um servidor
>>web.
>>
>>Caso voce consiga um servidor web (tem varios disponiveis por ai de
>>graca),
>>voce devera mudar a propriedade java.rmi.server.codebase para algo tipo:
>>java.rmi.server.codebase=http://127.0.0.1:8080/mysrc.
>>
>>Voce devera substituir o endereco, a porta e o diretorio pelos que
>>estiverem
>>sendo usados por voce.
>>
>>Abraco, boa sorte, e se tiver mais duvidas, mande outro e-mail bem
>>detalhado!
>>
>>
>
>______________________________________________________
>Get Your Private, Free Email at http://www.hotmail.com
>
> --------------------------- LISTA SOUJAVA ---------------------------
> http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
> [dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
> [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
> ---------------------------------------------------------------------
>
______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com
--------------------------- LISTA SOUJAVA ---------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
[dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
---------------------------------------------------------------------