Rechercher : dans
Par :

Help, erreur quand je lance un serveur JAVA :

Dernière réponse le 24 déc 2003 à 12:44:06 Premier Prog : Aïe!!, le 23 déc 2003 à 21:58:45 
 Signaler ce message aux modérateurs

Bonjour à tous,

voilà je viens de "réaliser" mon 1er pgm sous JAVA (RMI) avec Eclipse, il s'agit de "Hello World" et de sources que j'ai récupérer sur le net.

Je me contente uniquement de reprendre tout ça en comprenant, c'est pour un dossier que je dois rentre dans une semaine.

Je vois joins mon fichier HelloImpl.java

//HelloImpl.java
//
package rmidemo;
import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;
public class HelloImpl extends UnicastRemoteObject implements
Hello{
private String name;
public HelloImpl(String s) throws RemoteException{
super();
name = s;
}
public String sayHello() throws RemoteException{
return "Hello World!";
}
public static void main(String args[])
{
//
//cré et installe un security manager
//
System.setSecurityManager(new RMISecurityManager());
try{
HelloImpl obj = new HelloImpl("HelloServer");
Naming.rebind("//localhost/HelloServer", obj);
System.out.println("HelloServer enregistré dans le registry");
}
catch (Exception e){
System.out.println("HelloImpl err: " + e.getMessage());
e.printStackTrace();
}
}
}


La compil se passe bien avec javacn après j'utilise rmic pour générer mes deux autres fichiers .class...mais au moment du lancement du serveur une erreur :

C:\DEMO\ECLIPSE\WORKSP~1\TEST>java HelloImpl
Exception in thread "main" java.lang.NoClassDefFoundError: HelloImpl


alors là!! je sais pas du tout où est le problème!!! C'est ma premiere approche à la prog et c'est vraiment pas évident car je suis seule. Si quelqu'un pouvait m'aider ça serait vraiment super sympa! Merci d'avance à tous

et Joyeuses Fetes

Gaëlle

Meilleures réponses pour « Help, erreur quand je lance un serveur JAVA : » dans :
[Outlook] Réponse du serveur : Erreur 554 - Relay Access denied VoirVotre client de messagerie vous affiche l'erreur suivante : Erreur 554 - Relay Access Denied Ce problème est lié à l'utilisation d'un serveur de courrier sortant (serveur SMTP) sur un domaine n'appartenant pas au fournisseur d'accès. En effet, afin...
[MSN] Erreur de connexion (80048820) VoirErreur 80048820 Avant toute modification sur votre système, vérifiez l'état des serveurs MSN Messenger, afin de déterminer si le problème ne vient pas de là : http://messenger.msn.com/Status.aspx?mkt=fr-fr Il peut également s'agir d'un problème...
[Playstation 3] Impossible de se connecter : Erreur DNS VoirComment rétablir un problème de connexion passager sur sa PS3 Impossible d'établir la connexion avec le serveur. Erreur DNS. (80710102) Dans beaucoup de cas, il suffit d'aller dans la partie Paramètres ► Paramètres réseau ► Test de...
Introduction aux Java Server Pages VoirPrésentation des Java Server Pages Les JSP (Java Server Pages) sont un standard permettant de développer des applications Web interactives, c'est-à-dire dont le contenu est dynamique. C'est-à-dire qu'une page web JSP (repérable par l'extension...
Java - Les exceptions VoirLa nécessité de détecter les erreurs Tout programme comporte des erreurs, même si celui-ci semble fonctionner à merveille. Chaque programmeur essaye de réduire au minimum le nombre d'erreurs, mais toutes les erreurs ne peuvent pas forcément être...
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...

1

silfaxu, le 24 déc 2003 à 08:10:14

Salut,

Tu n'es pas dans le bon répertoire.
Si tu regardes attentivement ta classe, tu verras que la première ligne comprend le mot-clé package suivi du nom du package (ici rmidemo).
Sans entrer dans les détails, ça signifie que le nom 'complet' de ta classe est rmidemo.HelloImpl et non HelloImpl.
D'ailleurs, l'arborescence physique sur ton disque doit refleter ce mécanisme : tu dois certainement avoir un répertoire rmidemo dans lequel ton fichier HelloImpl.class se trouve.

Pour exécuter ton fichier, tu dois donc te placer dans le répertoire parent (juste au dessus) du répertoire rmidemo et taper dans ta ligne de commande :
java rmidemo.HelloImpl

Et ça devrait fonctionner.

J'espere que ça t'aidera ..

sfx

---------------------------------------------------
Bonnes Fêtes de Fin d'Année à Tous

Répondre à silfaxu

2

Premier Prog : Aïe!!, le 24 déc 2003 à 11:16:37

Salut à tous et à sfx plus particulierement,
merci d'abord pour ta réponse car je suis désperée ;(
j'ai bien fais ce que tu m'as dit et LA c'est le drame! lol vala un petit copier coller d'un immonde message incompréhensible :

C:\demo\eclipse\workspace\test>java rmidemo.HelloImpl
HelloImpl err: access denied (java.net.SocketPermission 127.0.0.1:1099 connect,r
esolve)
java.security.AccessControlException: access denied (java.net.SocketPermission 1
27.0.0.1:1099 connect,resolve)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkConnect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown S
ource)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown S
ource)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.newCall(Unknown Source)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at java.rmi.Naming.rebind(Unknown Source)
at rmidemo.HelloImpl.main(HelloImpl.java:24)



alors heu, bin je comprend rien en fait....tu pourrais pas me filer un coup de main steuplé :)))))))))))))))))

A bientot

Gaëlle

Répondre à Premier Prog : Aïe!!

3

silfaxu, le 24 déc 2003 à 11:40:12

Salut,

Le programme a l'air de fonctionner ... :-))
Le problème vient de la politique de sécurité mis en place dans Java ...
Du côté serveur, tu dois avoir un fichier texte qui s'appelle java.policy ou quelque chose comme ça (se terminant par policy en tout cas)
Dans ce fichier, tu dois indiquer que ton serveur accepte les connections sur le port 1099 en rajoutant une ligne du type :
permission java.net.SocketPermission "machine:1099", "connect" ;

En creusant un peu par là, ça résoudra ton problème

sfx

----------------------------------------
Bonnes Fêtes de Fin D'Année

Répondre à silfaxu

4

1er prog : Aïe!!, le 24 déc 2003 à 12:01:38

Merci encore, et bien après l'ajout de la ligne

permission java.net.SocketPermission "localhost:1099-", "connect"; (reprise de la synthaxe du java) dans le fichier java.policy qui est dans "C:\j2sdk1.4.2_03\jre\lib\security"

j'ai toujours le même message... je sais vraiment pas quoi faire...

Répondre à 1er prog : Aïe!!

5

 1er prog : aïe!, le 24 déc 2003 à 12:44:06

Re,

en fait j'ai modifié la ligne dans java.policy en mettant
permission java.net.SocketPermission "*", "accept, resolve";

ça ne passe toujours pas, j'ai trouvé un truc sur internet mais en fait je comprend pas ce qu'ils disent, enfin si faut créer des fichiers , lesquels...enfin je pense que toi tu devrai comprendre ce qu'il faut faire est ce que tu me décrypetr ceci???
voici l'url http://www.essi.fr/~blay/ENSEIGNEMENT/RMI/TPRMIEssi2.html
c'est à la partie "Le securityManager"
Franchement ça serait vraiment trop trop sympa!! un super cadeau de Noël ;)))

Gaëlle

Répondre à 1er prog : aïe!
Collection CommentÇaMarche.net