Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

remote method invocation problem

[es] :: Java :: remote method invocation problem

[ Pregleda: 1049 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

afrodom

Član broj: 155837
Poruke: 137
91.150.71.*



Profil

icon remote method invocation problem03.06.2009. u 10:28 - pre 181 meseci
Jednostavno nema sanse da registrujem partikularni objekat u rmi naming registry?!
Cim to pokusam dobijam 1. Caused by : java.rmi.UnmarshalException: error unmarshaling arguments; nested exception is : java.langClassNotFoundException : HelloImpl_Stub .
To je jedan prosta vezba, naobicnije korscenje rmi-a, za koje bih se mogao zakleti da je radilo davno. Medjutim, cui=o sam ja i JDK zna da zeza, po tom pitanju. Ali opet, voleo bih da mi neko ukaze na propust koji sam napravio. Dakle pomenuta greska se javlja svaki put, na svakom primeru, koji sam sa jedno 10 sajtova pokusavao da aktiviram. Evo jedan obican primer koji takodje proizvodi dati exception :

1. interface

code]
import java.rmi.*;
public interface Hello extends Remote
{
public String getGreeting() throws RemoteException;
}
[/code]

2.implementation class

2.Create implementatio class;
Code:


import java.rmi.*;
import java.rmi.server.*;
public class HelloImpl extends UnicastRemoteObject
implements Hello
{
public HelloImpl() throws RemoteException{
//No action needed here.
}
public String getGreeting() throws RemoteException
{
return ("Hello there!");
}
}


3.Simulacija servera, za 'vezivanje' rmi objekta
3. create server simulation, for naming binding
Code:

import java.rmi.*;
public class HelloServer
{
private static final String HOST = "localhost";
public static void main(String[] args)
throws Exception
{
//Create a reference to an
//implementation object...
HelloImpl temp = new HelloImpl();
//Create the string URL holding the
//object's name...
String rmiObjectName = "rmi://" + HOST + "/Hello";
//(Could omit host name here, since 'localhost'
//would be assumed by default.)
//'Bind' the object reference to the name...
Naming.rebind(rmiObjectName,temp);
//Display a message so that we know the process
//has been completed...
System.out.println("Binding complete...\n");
}
}


4.Clijent rmi servisa
4. the client of RMI service
Code:

import java.rmi.*;
public class HelloClient
{
private static final String HOST = "localhost";
public static void main(String[] args)
{
try
{
//Obtain a reference to the object from the
//registry and typecast it into the appropriate
//type...
Hello greeting =
(Hello)Naming.lookup("rmi://"
+ HOST + "/Hello");
//Use the above reference to invoke the remote
//object's method...
System.out.println("Message received: "
+ greeting.getGreeting());
}
catch(ConnectException conEx)
{
System.out.println(
"Unable to connect to server!");
System.exit(1);
}
catch(Exception ex)
{
ex.printStackTrace();
System.exit(1);
}
}
}

5. compilacija classa :
Code:

javac Hello.java
javac HelloImpl.java
javac HelloServer.java
javac HelloClient.java

6.compilacija Impl. klase korsteci rmic :
Code:

rmic HelloImpl

7.Startovanje registry servisa, aktivacijom command prompta u root folderu
Code:

registry


8. poziv server
Code:

java HelloServer

9.poziv clijenta
Code:

java HelloClient


I kao sto rekoh, pomenuta greska se javlja bez obzira na vezbu. Hvala unapred
 
Odgovor na temu

[es] :: Java :: remote method invocation problem

[ Pregleda: 1049 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.