tu peux montrer le manifest que tu as créé, et nous indiquer où se trouve "com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException" par rapport au jar principal?
tu peux montrer le manifest que tu as créé, et nous indiquer où se trouve "com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException" par rapport au jar principal?
Hum..
Bon bah alors les jar sont situés dans /var/directory_serv/servmc_xxxxx/lib
(j'avais utilisé : dirPath = file.getAbsoluteFile().getParentFile().getAbsolutePath())
com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException
se situe ici : htmlunit-2.15.jar => com.gargoylesoftware.htmlunit => FailingHttpStatusCodeException
Et le manifest.mf :
Avec la ligne vide en dessous !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Class-Path: /var/directory_serv/servmc_xxxxx/lib/cssparser-0.9.14.jar /var/directory_serv/servmc_xxxxx/lib/nekohtml-1.9.21.jar /var/directory_serv/servmc_xxxxx/lib/commons-lang3-3.3.2.jar /var/directory_serv/servmc_xxxxx/lib/htmlunit-core-js-2.15.jar /var/directory_serv/servmc_xxxxx/lib/jetty-http-8.1.15.v20140411.jar /var/directory_serv/servmc_xxxxx/lib/jetty-util-8.1.15.v20140411.jar /var/directory_serv/servmc_xxxxx/lib/commons-logging-1.1.3.jar /var/directory_serv/servmc_xxxxx/lib/jetty-io-8.1.15.v20140411.jar /var/directory_serv/servmc_xxxxx/lib/htmlunit-2.15.jar /var/directory_serv/servmc_xxxxx/lib/httpcore-4.3.2.jar /var/directory_serv/servmc_xxxxx/lib/commons-collections-3.2.1.jar /var/directory_serv/servmc_xxxxx/lib/sac-1.3.jar /var/directory_serv/servmc_xxxxx/lib/xercesImpl-2.11.0.jar /var/directory_serv/servmc_xxxxx/lib/commons-codec-1.9.jar /var/directory_serv/servmc_xxxxx/lib/httpclient-4.3.3.jar /var/directory_serv/servmc_xxxxx/lib/commons-io-2.4.jar /var/directory_serv/servmc_xxxxx/lib/jetty-websocket-8.1.15.v20140411.jar /var/directory_serv/servmc_xxxxx/lib/httpmime-4.3.3.jar
Pour des chemins absolus, comme pour tout dans le classpath, c'est des URLs, donc:
Mais en général on recommande des chemins relatifs. Si ton jar principal est dan /var/directory_serv/servmc_xxxxx/:
Code : Sélectionner tout - Visualiser dans une fenêtre à part file:///var/directory_serv/servmc_xxxxx/lib/commons-lang3-3.3.2.jar
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Class-Path: lib/cssparser-0.9.14.jar lib/nekohtml-1.9.21.jar lib/commons-lang3-3.3.2.jar lib/htmlunit-core-js-2.15.jar lib/jetty-http-8.1.15.v20140411.jar lib/jetty-util-8.1.15.v20140411.jar
Il y a tellement de tentatives différentes avec des manifest différents que c'est dur à voir. Mais donc a tenter avec les bonnes valeurs, les bon jar.
Une chose aussi me fait tilter. Ton jar est dans un dossier Plugin, ce qui laisse supposer que ce n'est pas toi qui le charge, mais une autre application qui le charge. Du coup, faut voir si cette autre application respecte l'entrée Class-Path dans ton manifest, ce n'est pas le cas du URLClassLoader par défaut, que beaucoup utilisent pour gérer des plugins. Bref, voir la doc de l'appli principale pour savoir comment on rajoute des dépendances au plugin.
Merci,
alors j'essayerais avec les chemins que tu m'as proposé.
Sinon au sujet les dépendances, il faut que ce soit des plugins et là ce sont des .jar qui ne peuvent pas être lancés dans le dossier "plugins". Je peux poser une question à mon hébergeur mais je ne sais pas exactement comment formuler ?
Et on me propose "Maven" j'arrive pas
http://bukkit.org/threads/class-path.../#post-3009360
C'est des plugins pour quoi? C'est quoi l'application qui tourne derrière. C'est pas l'hébergeur (lui il faut qu'héberger) mais le vendeur de l'application qui pourra te répondre à travers sa doc technique.
Le vendeur s'appelle Mojang...
Bref j'ai pu résoudre autrement le problème !
Sauf que j'arrive pas à exploiter du json correctement -_-
The constructor JSONObject(String) is undefined
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 import org.json.simple.JSONObject; JSONObject json = new JSONObject(IOUtils.toString(new URL("https://contenu.exemple"), Charset.forName("UTF-8")));
Meme avec ça (json-lib-2.4-jdk15.jar) dans le build path j'ai toujours l'erreur !
help please
Pour héberger du Bukkit tu me permettras d'en douter. Certes en théorie plus ou moins, ça leur appartient. Mais ils ne proposent pas d'hébergement pour lui. Leur seul service c'est Minecraft Realms, du pur vanilla.
.........
Donc, ton problème c'est que tu ne sais pas comment on fait pour utiliser un .jar externe dans un plugin.
Du coup, solution, tu fais en sortes que le .jar que tu essayais d'utiliser, tu vas t'en passer. Et tu remplaces par un autre .jar externe.
......... Tu peux nous expliquer en quoi ça changerait quelque chose ?
Enfin bon, JSON c'est simple, il y a plein de classes toutes simples pour le gérer au lieu de .jar externes, comme sur json.org par exemple.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
En même temps, cette classe n'a pas de constructeur prenant une String....
Ha... merci mais comment faire
J'ai essayé ça aussi mais il trouve pas "IOUtils" évidement !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 try { Object objFr = IOUtils.toString(new URL("https://xxx.expl"), Charset.forName("UTF-8")); Object objBe = IOUtils.toString(new URL("https://xxx.expl"), Charset.forName("UTF-8")); JSONObject jsonObjectFr = (JSONObject) objFr; JSONObject jsonObjectBe = (JSONObject) objBe; String iPhoneNumberFr = (String) jsonObjectFr.get("iPhoneNumber"); String sKeywordFr = (String) jsonObjectFr.get("sKeyword"); String iPhoneNumberBe = (String) jsonObjectBe.get("iPhoneNumber"); String sKeywordBe = (String) jsonObjectBe.get("sKeyword"); //JSONArray companyList = (JSONArray) jsonObject.get("Company List"); } catch (Exception e) { player.sendMessage("§4ERREUR, essaye plus tard !"); }
Houlà mais c'est du n'importe quoi là!
D'abord il trouve IOUtils, sinon tu n'aura pas eu le message précédent puisque le compilateur aurait été incapable de savoir que la méthode renvoyait une String.
Ensuite, une String ça se caste pas en JSONObject, une String c'est... ben une String quoi. Si tu veux construire un objet JSON à partir d'un String en utilisant la librairie que tu a importée plus haut, ben tu suis la doc de la librairie qui t'expliquera comment faire (la factory, etc).
-_-
1 C'est le seul code correct que j'ai pu faire, tous les autres avaient des erreurs en me disant qu'il voulait pas de String dans le JSONObject, je pouvais PAS faire autrement !!!!!
2 NON, il le trouve pas !
Pour la meme raison que le problème avec manifest etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 [22:40:54] [Server thread/ERROR]: null org.bukkit.command.CommandException: Unhandled exception executing command 'mpl' in plugin Mecraft v1 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit.jar:git-Spigot-1642] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) ~[craftbukkit.jar:git-Spigot-1642] at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:767) ~[craftbukkit.jar:git-Spigot-1642] at net.minecraft.server.v1_7_R4.PlayerConnection.handleCommand(PlayerConnection.java:1043) [craftbukkit.jar:git-Spigot-1642] at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:880) [craftbukkit.jar:git-Spigot-1642] at net.minecraft.server.v1_7_R4.PacketPlayInChat.a(PacketPlayInChat.java:28) [craftbukkit.jar:git-Spigot-1642] at net.minecraft.server.v1_7_R4.PacketPlayInChat.handle(PacketPlayInChat.java:65) [craftbukkit.jar:git-Spigot-1642] at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186) [craftbukkit.jar:git-Spigot-1642] at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [craftbukkit.jar:git-Spigot-1642] at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [craftbukkit.jar:git-Spigot-1642] at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [craftbukkit.jar:git-Spigot-1642] at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [craftbukkit.jar:git-Spigot-1642] at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [craftbukkit.jar:git-Spigot-1642] at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [craftbukkit.jar:git-Spigot-1642] Caused by: java.lang.NoClassDefFoundError: org/apache/commons/io/IOUtils at fr.mecraft.Mecraft.MeClass.onCommand(MeClass.java:1107) ~[?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit.jar:git-Spigot-1642] ... 13 more Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.IOUtils at java.net.URLClassLoader$1.run(URLClassLoader.java:366) ~[?:1.7.0] at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[?:1.7.0] at java.security.AccessController.doPrivileged(Native Method) ~[?:1.7.0] at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[?:1.7.0] at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[craftbukkit.jar:git-Spigot-1642] at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[craftbukkit.jar:git-Spigot-1642] at java.lang.ClassLoader.loadClass(ClassLoader.java:423) ~[?:1.7.0] at java.lang.ClassLoader.loadClass(ClassLoader.java:356) ~[?:1.7.0] at fr.mecraft.Mecraft.MeClass.onCommand(MeClass.java:1107) ~[?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit.jar:git-Spigot-1642] ... 13 more
3 Je vais me tourner vers xpath peut être (exploiter du HTML) mais si y'a un truc à importer et Build path alors je me tire une balle -_-
Ben non c'est tout sauf un code correct. Ca c'est du mélange de code dans le compilateur, on secoue et on espère que ça donne quelque chose. La programmation, ce n'est pas comme ça que ça marche, ça suit une logique. Faudrait commencer par les bases avant d'attaquer des serveur complexes.
Vu la librairie que tu utilise, la doc est claire pour créer tes objets JSON:
Et le obj tu le caste en JSONObject ou JSONArray suivant ce que c'est réellement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Object obj=JSONValue.parse(s);
Pour ce qui est des dépendances manquante, je pensais que tu avais résolu le problème? Donc tu n'a plus qu'à appliquer le même principe pour toutes tes dépendances.
Merci,
Je n'ai pas résolu le problème, je l'ai contourné.
J'utilise un autre moyen très basique, j'ai pu trouver une page qui affiche 2 balises span, je get + split et le tour est joué.
Sinon pour les dépendances, ça se met dans le fichier plugin.yml mais les jar sont alors lu dans le dossier "plugins", et si je les mets là, l'appli essaye de les lire comme des plugins :p
Bref, je ne sais toujours pas comment utiliser des .jar externe, mais je n'ai plus de soucis, pour l'instant.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager