Bonjour,
Je souhaite lancer jboss a partir d'une api java.
Y a t il une facon pour le faire?
Merci
Version imprimable
Bonjour,
Je souhaite lancer jboss a partir d'une api java.
Y a t il une facon pour le faire?
Merci
Tout dépend si tu veux le lancer dans un processus autonome ou l'embarquer dans ton application.
En mode autonome, tu as la méthode Runtime.exec().
en mode embarqué, tu peux appeler la classe org.jboss.Main, avec les bons argument. Pour les connaître, je pense qu'il faut étudier les scripts de lancement.
Merci pour votre réponse.
En fait c'est en mode embarqué que je souhaite lancer jboss.
j'utilise le script suivant:
ça génère des exceptions au lancement bien que j'ai importé l'ensemble des lib dans le classpath.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public static void main(String[] args) { String str[]={}; Class c; try { c = Class.forName("org.jboss.Main"); Main ob = (Main)c.newInstance(); ob.main(str); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
Y a t il une autre étape à faire?
Pourquoi ne fais-tu pas ceci ?
Si tu étudies les scripts run.bat ou run.conf, tu verras que JBoss a besoin de variables d'environnement ou d'arguments. Pour mettre toutes les chances de ton coté, il faut que tu reproduises ça.Code:new org.jboss.Main()
Merci pour votre réponse, c'est vrai que c'est mieux de procèder comme vous dites.
Le problème reste au niveau des execptions générées bien que j'ai importé les lib qu'il faut normalement. En plus il y a un truc bizarre qui se produit:
quand j'utilise le code suivant:
j'ai un nouveau répertoire " default" (avec un espace au début) crée sous jboss_home/server/ :roll:Code:
1
2
3
4
5
6
7
8
9 mainJboss = new org.jboss.Main(); String[] startJbossArgs = new String[1]; startJbossArgs[0] = "-c default"; try { mainJboss.boot(startJbossArgs); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }
Pourriez vous m'aider là dessus?
Pour l'exception c'est:
ERROR [MainDeployer] Could not initialise deployment: file:/C:/Documents and Settings/hazem/udir/hazem/ngfm/jboss-4.2.2.GA/server/default/deploy/jbossws.sar/
Merci.
Cela m'inspire 2 choses :
- "-c default" est facultatif puisque c'est la valeur par défaut
- Si tu veux tout de même le préciser, je pense qu'il faut le mettre sur 2 lignes
Code:
1
2 startJbossArgs[0] = "-c"; startJbossArgs[1] = "default";
Il me semble que le projet embeddedJBoss sert à ça.
http://www.jboss.org/community/docs/DOC-9690
et
http://www.jboss.org/community/docs/DOC-9685
VG
C'est juste.
Par contre, c'est du JBoss 5. Il n'y a pas d'équivalent en JBoss 4, ou alors uniquement pour EJB3.