Java.lang.ArrayIndexOutOfBoundsException

cs_sana88 Messages postés 5 Date d'inscription mardi 25 janvier 2011 Statut Membre Dernière intervention 24 avril 2012 - 16 avril 2012 à 23:18
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 - 18 avril 2012 à 10:47
Salut,
j'ai un problème lors de l’exécution de mon programme.
je vais expliquer de quoi il s'agit mon code: je tente à me connecter à la base de données eXist pour sauvegarder des fichiers suivant un code java.
mon code est le voilà:
import java.io.File;
import org.xmldb.api.DatabaseManager;
import org.xmldb.api.base.Collection;
import org.xmldb.api.base.Database;
import org.xmldb.api.modules.CollectionManagementService;
import org.xmldb.api.modules.XMLResource;


public class exp {

public final static String URI = "xmldb:exist://localhost:8080/exist/xmlrpc";

public static void main(String args[]) throws Exception {

/*if(args.length < 2)
{
System.out.println("usage: StoreExample collection-path document");
System.exit(1);
}*/ ceci est en commentaire car lorsque j’exécute il m'affiche cette phrase
System.out.println("donner le nom de la collection");
String collection args[0] , file args[1] ;
// initialisation du driver
String driver = "org.exist.xmldb.DatabaseImpl";
Class cl = Class.forName(driver);
Database database = (Database)cl.newInstance();
DatabaseManager.registerDatabase(database);

// Accès à la collection
Collection col =DatabaseManager.getCollection(URI + collection);
if(col == null) {
// la collection n’existe pas. Créer une root pour une nouvelle collection
// pour simplifier, on suppose que la nouvelle collection est un fils direct de la root collection,
// e.g. /db/test. L’exemple échouera sinon
Collection root = DatabaseManager.getCollection(URI + "/db");
CollectionManagementService mgtService = (CollectionManagementService)root.getService("CollectionManagementService", "1.0");
col = mgtService.createCollection(collection.substring("/db".length()));
}
// créer une nouvelle XMLResource; un id sera affecté à la nouvelle ressource
XMLResource document = (XMLResource)col.createResource(null, "XMLResource");
File f = new File(file);
if(!f.canRead()) {
System.out.println("cannot read file " + file);
return;
}
document.setContent(f);
System.out.print("storing document " + document.getId() + "...");
col.storeResource(document);
System.out.println("ok.");
}
}
merci d'avance pour votre aide

8 réponses

cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
17 avril 2012 à 08:33
Salut,

Si je comprends bien, tu as mis en commentaire le code qui empêche l'application de se lancer si l'utilisateur ne donne pas au moins 2 arguments. Et donc tu demandes pourquoi tu as une exception ArrayOutOfBounds lorsque tu demandes le deuxième argument...

ne vois-tu pas la un comportement logique de ton application??
Si tu veux lancer ton application avec des arguments et donc qu'elle s'exécute, donne les lui... Si tu lance l'application via ton IDE (eclipse, netbeans, ...) cela se fait dans la configuration d'exécution....
0
cs_sana88 Messages postés 5 Date d'inscription mardi 25 janvier 2011 Statut Membre Dernière intervention 24 avril 2012
17 avril 2012 à 21:21
Merci pour votre réponse d'abord,
je vais vous expliquer comment g trouvé l'erreur. g mis en commentaire le code suivant "/*if(args.length < 2)
{
System.out.println("usage: StoreExample collection-path document");
System.exit(1);
}*/" car lors de l'exécution du programme, le résultat sera cette phrase, et ce que g compris que l’exécution est arrêtée à ce niveau et je ne peux pas ajouter mes deux arguments.
et en mettant cette partie en commentaire, j'aurai cette exception.
autre question svp je n'arrive pas à savoir ou mettre mes 2 arguments car lors de l’exécution, je reçois qu'une phrase.
0
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
18 avril 2012 à 08:10
comment exécutes-tu ton application?

par la ligne de commande?
via ton environnement de développement? (Eclipse, NetBeans, ...) Si oui, lequel?
0
cs_sana88 Messages postés 5 Date d'inscription mardi 25 janvier 2011 Statut Membre Dernière intervention 24 avril 2012
18 avril 2012 à 10:32
j'exécute mon programme via l'IDE Netbeans
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
18 avril 2012 à 10:42
et op une recherche google plus tard: tadaaaa

L'informatique est un domaine ou savoir rechercher une information sur le net est plus qu'utile... Ce n'est qu'après avoir recherché sans succès une information qu'on demande...
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
18 avril 2012 à 10:42
http://netbeans.developpez.com/faq/?page=DeveloppementJ2SE#argumentsJVM
bouton droit sur le projet, -> Properties
Dans le panneau de gauche, sélectionnez Run
Dans Main Class: la classe possédant la méthode main
Dans Arguments : les arguments de l'application (qui seront passés en paramètre à la méthode main(String[] args))
Dans VM Options : les paramêtres à passer à la machine virtuelle. Par exemple: -Xms10m
Dans Working Directory : le répertoire utilisé pour démarrer l'application. Si rien n'est précisé, c'est le répertoire racine du proje
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
18 avril 2012 à 10:44
Désolé cormandyr, je n'ai pas vu ton post avant de mettre le mien.
0
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
18 avril 2012 à 10:47
pas grave ^^ tu étais surement en train de le rédiger quand j'ai posté ^^
0
Rejoignez-nous