Télécharger Jboss 6

Page des téléchargement de JBoss Application Server

6.1.0.Final	183 MB	2011-08-16	LGPL
6.0.0.Final	181 MB	2010-12-28	LGPL

JBoss6.1 : JBoss AS 6.1.0 is intended to be a bugfix-only release (Code Freeze : March 11, 2011 Release : March 18, 2011 reporté à plus tard) JBAS JIRA: Fix for Release 6.1.0 et ses versions noctures : Projet JBoss-AS-6.1.x Continuous build of JBoss AS 6 series (jboss-6.1.0-SNAPSHOT) from subversion (http://anonsvn.jboss.org/repos/jbossas/trunk) built with Sun JDK 1.6

L'administration par défaut

JBoss AS 6 Admin Console (admin/admin par défaut)

http://localhost:8080/admin-console...

JBossWS

http://localhost:8080/jbossws/

JMX Agent View (JMX Console)

http://localhost:8080/jmx-console/

D'anciennes URLs des versions précédentes ne fonctionne plus ( JBoss Management ) :

Eclipse 3.6 (helios) & Jboss 6

Server Adapter Jboss 6 pour Eclipse

Eclipse, pour Jboss 6, ne fournit pas par défaut et ne propose pas non plus dans sa liste "Server Adapters" d'adaptateur Jboss 6 de pour lancer Jboss depuis Eclipse

Pour rajouter un server adapter, utiliser la procédure suivante :

  1. Lancer Eclipse.
  2. Sélectionner menu: File | New | Other
  3. Développez le dossier "Server", Sélectionner "Server" et appuyer sur le boutton "Next".
  4. Cliquer sur le lien "Download additional server adapters".
  5. Sélectionner l'adaptateur de serveur dont vous avez besoin et appuyer sur le boutton "Next".
  6. Lire et accepter l'accord de licence et appuyer sur le bouton "Finish".
  7. Relancer Eclipse.

Ressources :

Jboss est en écoute seulement sur l'interface local

Il faut rajouter l'option "-b" au lancement de Jboss :

./run.sh -c default -b 0.0.0.0

Que ce soit sous linux ou sous windows, JBoss AS démarre en se liant à toutes les interfaces réseau. C'est ce qu'il est possible de voir dans les logs de démarrage lorsqu'au lieu de l'adresse IP il affiche "0.0.0.0" . C'est pour ça qu'en utilisant la commande "run.sh -b 0.0.0.0" on obtiens le même résultat.

Si ça ne marche pas ---> il faut aller voir celui qui administre la machine. La plupart du temps il y a plusieurs carte réseaux et seulement une partie est visible. Il faudra démarrer JBoss AS en précisant cette interface avec la commande ci-dessus et en remplaçant "0.0.0.0" par l'adresse IP visible.

Attention : l'option "-B" permet de spécifier un répertoire où aller chercher les librairies nécessaires au démarrage de JBoss AS. Rien à voir donc avec l'option "-b" qui permet de spécifier l'interface réseau (l'adresse IP) sur laquelle JBoss AS doit écouter. Merci à developpez.net pour la solution.

Pensez a rajouter l'option dans le script de démarrage : /etc/init.d/jboss

JBOSSSH=${JBOSSSH:-"$JBOSS_HOME/bin/run.sh -c $JBOSS_LVL -b 0.0.0.0"}

Jboss est en écoute seulement sur le port par défaut 8080

Changer ou ajouter un port d'écoute tel que le port 80

jboss-6.0.0.Final/server/default/deploy/jbossweb.sar/server.xml :

<Service name="jboss.web">
 
      <!-- A HTTP/1.1 Connector on port 8080 -->
      <Connector protocol="HTTP/1.1" port="${jboss.web.http.port}" address="${jboss.bind.address}" 
         redirectPort="${jboss.web.https.port}" />
 
      <!-- Add this option to the connector to avoid problems with 
          .NET clients that don't implement HTTP/1.1 correctly 
         restrictedUserAgents="^.*MS Web Services Client Protocol 1.1.4322.*$"
      -->	
 
      <!-- Ajout d'un connecteur sur le port web standard, le port 80 -->
      <!-- A HTTP/1.1 Connector on port 80 -->
      <Connector protocol="HTTP/1.1" port="80" address="${jboss.bind.address}" 
         redirectPort="${jboss.web.https.port}" />

Puisque Jboss réponds sur toutes les interfaces, il faut bloquer l'accès anonyme à l'administration.

jmx-console http://localhost:8080/jmx-console/

Activation de l'authentification pour bloquer l'accès à la jmx-console pour les utilisateurs anonymes et non identifiés

C:\jboss-6.0.0.Final\common\deploy\jmx-console.war\WEB-INF\web.xml :

<!-- A security constraint that restricts access to the HTML JMX console
   to users with the role JBossAdmin. Edit the roles to what you want and
   uncomment the WEB-INF/jboss-web.xml/security-domain element to enable
   secured access to the HTML JMX console.
   -->
   <security-constraint>
     <web-resource-collection>
       <web-resource-name>HtmlAdaptor</web-resource-name>
       <description>An example security config that only allows users with the
         role JBossAdmin to access the HTML JMX console web application
       </description>
       <url-pattern>/*</url-pattern>
     </web-resource-collection>
     <auth-constraint>
       <role-name>JBossAdmin</role-name>
     </auth-constraint>
   </security-constraint>
   <!-- -->

C:\jboss-6.0.0.Final\common\deploy\jmx-console.war\WEB-INF\jboss-web.xml :

<!DOCTYPE jboss-web PUBLIC
   "-//JBoss//DTD Web Application 5.0//EN"
   "http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd">
 
<jboss-web>
   <!-- Uncomment the security-domain to enable security. You will
      need to edit the htmladaptor login configuration to setup the
      login modules used to authentication users.
   -->
      <security-domain>java:/jaas/jmx-console</security-domain>
   <!-- -->
</jboss-web>

Changement du mot de passe pour la jmx-console et de l'admin-console

jboss-6.0.0.Final/server/default/conf/props/jmx-console-users.properties :

# A sample users.properties file for use with the UsersRolesLoginModule
#admin=admin
admin=newPassword
#http://community.jboss.org/wiki/DIGESTAuth
#[starksm@banshee9100 security]$ java -cp $JBOSS_HOME/server/default/lib/jbosssx.jar org.jboss.security.auth.spi.RFC2617Digest admin2 "JBoss JMX Console" admin2
# with JBoss AS 6.x: java -cp $JBOSS_HOME/common/lib/jbosssx-server.jar org.jboss.security.auth.spi.RFC2617Digest admin2 "JBoss JMX Console" admin2
admin2=a28c9ab431e878852135eac336fb0968

Relance du serveur pour recharger les paramètres de sécurité

Maintenant, si vous relancer votre serveur Jboss, les accès à la jmx-console et de l'admin-console seront identifiés avec ce nouveau mot de passe.

Voir aussi les ressources Jboss :

Jboss ROOT, changer la page d'accueil par défaut de Jboss

Voyez le post modification du context root de Jboss pour changer la page accueil

Ejb3 entity, erreurs à ne pas commettre :

  • nommer son fichier à la française : persistance.xml à la place de persistence.xml
  • recopier le fichier persistence.xml depuis le web à la place de le copier depuis les exemples fournis dans la documentation de jboss-6.0.0.Final/docs/examples/jca/mysql-ds.xml

Manager de transaction (JTA)

L'accès a plusieurs ressources dans une seule transaction n'est plus autorisé par défaut par le nouveau manager de transaction. Si vous obtenez un message :

[com.arjuna.ats.arjuna] ARJUNA-12140 Adding multiple last resources is disallowed. Current resource is com.arjuna.ats.internal.arjuna.abstractrecords.LastResourceRecord@de988a
[org.hibernate.util.JDBCExceptionReporter] Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: 0:ffffac141eca:126a:4d235506:156d status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: 0:ffffac141eca:126a:4d235506:156d status: ActionStatus.ABORT_ONLY >))
[org.hibernate.event.def.DefaultLoadEventListener] Error performing load command: org.hibernate.exception.GenericJDBCException: Cannot open connection

Éditez le fichier C:\jboss-6.0.0.Final\server\default\deploy\transaction-jboss-beans.xml et ajoutez la propriété "com.arjuna.ats.jta.allowMultipleLastResources" avec la valeur "true":

<bean name="CoreEnvironmentBean" class="com.arjuna.ats.arjuna.common.CoreEnvironmentBean">
 
        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.jta:name=CoreEnvironmentBean", exposedInterface=com.arjuna.ats.arjuna.common.CoreEnvironmentBeanMBean.class, registerDirectly=true)</annotation>
 
        <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getCoreEnvironmentBean"/>
 
<!-- AJOUT -->
<!-- http://localhost:8080/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.jta%3Aname%3DCoreEnvironmentBean -->
		<property name="allowMultipleLastResources">true</property>
<!-- 
WARN  [com.arjuna.ats.arjuna] ARJUNA-12142 You have chosen to enable multiple last resources in the transaction manager. This is transactionally unsafe and should not be relied upon.
WARN  [com.arjuna.ats.arjuna] ARJUNA-12141 Multiple last resources have been added to the current transaction. This is transactionally unsafe and should not be relied upon. Current resource is com.arjuna.ats.internal.arjuna.abstractrecords.LastResourceRecord@1b9497f
WARN  [com.arjuna.ats.arjuna] ARJUNA-12141 Multiple last resources have been added to the current transaction. This is transactionally unsafe and should not be relied upon. Current resource is com.arjuna.ats.internal.arjuna.abstractrecords.LastResourceRecord@d35cfe
WARN  [com.arjuna.ats.arjuna] ARJUNA-12141 Multiple last resources have been added to the current transaction. This is transactionally unsafe and should not be relied upon. Current resource is com.arjuna.ats.internal.arjuna.abstractrecords.LastResourceRecord@10f436
WARN  [com.arjuna.ats.arjuna] ARJUNA-12141 Multiple last resources have been added to the current transaction. This is transactionally unsafe and should not be relied upon. Current resource is com.arjuna.ats.internal.arjuna.abstractrecords.LastResourceRecord@d35cfe
-->
<!--
		<property name="myFakePropertie">true</property>
Caused by: java.lang.IllegalArgumentException: No such property myNameIsFakir for bean com.arjuna.ats.arjuna.common.CoreEnvironmentBean available [socketProcessIdPort, nodeIdentifier, buildId, class, pid, processImplementation, disableMultipleLastResourcesWarning, varDir, allowMultipleLastResources, buildVersion, socketProcessIdMaxPorts]
-->

Puis consultez sur la jmx-console, le Bean : com.arjuna.ats.arjuna.common.CoreEnvironmentBean que l'argument allowMultipleLastResources est bien passé à true (false par défaut).

A l'utilisation vous aurrez le warning suivant :

WARN  [com.arjuna.ats.arjuna] ARJUNA-12141 Multiple last resources have been added to the current transaction. This is transactionally unsafe and should not be relied upon. Current resource is com.arjuna.ats.internal.arjuna.abstractrecords.LastResourceRecord@63a188

This is not a bug. You're trying to access multiple one phase resources in a single transaction. This was allowed with the old transaction manager, but it's not allowed in the new one. It is possible to set a property in the transaction service to allow multiple one phase resources, but that could lead to transaction problems. Better use two phase resources.

Les tâches planifiées (cron), avec Jboss il s'agit de scheduler (programmateur)

Le scheduler (cron) Jboss s'administre depuis ces 2 fichiers : jboss-6.0.0.Final/server/default/deploy/schedule-manager-service.xml jboss-6.0.0.Final/server/default/deploy/scheduler-service.xml

Vous pouvez également définir des taches programmées qui seront automatiquement déployées depuis votre programme lors de la publication de celui ci sur le serveur. Il faut ajouter dans le dossier META-INF de votre application un fichier de configuration pour Jboss : myscheduler-service.xml Voici un exemple de contenu du fichier META-INF/myscheduler-service.xml de votre programme :

<?xml version="1.0" encoding="UTF-8"?>
 <server>
 
         <!-- 
         7.1. org.jboss.varia.scheduler.Scheduler
 
 The Scheduler differs from the TimerMBean in that the Scheduler directly invokes a callback on
 an instance of a user defined class, or an operation of a user specified MBean.
 * InitialStartDate: Date when the initial call is scheduled. It can be either:
  * NOW: date will be the current time plus 1 seconds
  * A number representing the milliseconds since 1/1/1970
  * Date as String able to be parsed by SimpleDateFormat with default format pattern "M/d/yy
     h:mm a". If the date is in the past the Scheduler will search a start date in the future with
     respect to the initial repetitions and the period between calls. This means that when you
     restart the MBean (restarting JBoss etc.) it will start at the next scheduled time. When no
     start date is available in the future the Scheduler will not start.
  For example, if you start your Schedulable everyday at Noon and you restart your JBoss
  server then it will start at the next Noon (the same if started before Noon or the next day if
  start after Noon).
 * InitialRepetitions: The number of times the scheduler will invoke the target's callback. If -1
  then the callback will be repeated until the server is stopped.
 * StartAtStartup: A flag that determines if the Scheduler will start when it receives its
  startService life cycle notification. If true the Scheduler starts on its startup. If false, an
  explicit startSchedule operation must be invoked on the Scheduler to begin.
 * SchedulePeriod: The interval between scheduled calls in milliseconds. This value must be
  bigger than 0.  
            -->
 
         <!-- 
 http://docs.jboss.com/jbossas/javadoc/4.0.5/varia/org/jboss/varia/scheduler/Scheduler.html	  
 FixedRate : The default scheduling to use, fixed-rate or fixed-delay (false, default)
 
 void 	restartSchedule()
          Stops the server right now and starts it right now.
 void 	setDateFormat(String dateFormat)
          Sets the date format used to parse date/times
 void 	setFixedRate(boolean fixedRate)
          The default scheduling to use, fixed-rate or fixed-delay (false, default)
 void 	setInitialRepetitions(long pNumberOfCalls)
          Sets the initial number of scheduled calls.
 void 	setInitialStartDate(String pStartDate)
          Sets the first scheduled call.
 void 	setSchedulableArguments(String pArgumentList)
          The arguments to pass to the schedule
 void 	setSchedulableArgumentTypes(String pTypeList)
          Sets the comma seperated list of argument types for the Schedulable class.
 void 	setSchedulableClass(String pSchedulableClass)
          Sets the fully qualified Class name of the Schedulable Class being called by the Scheduler.
 void 	setSchedulableMBean(String pSchedulableMBean)
          Sets the fully qualified JMX MBean name of the Schedulable MBean to be called.
 void 	setSchedulableMBeanMethod(String pSchedulableMBeanMethod)
          Sets the method name to be called on the Schedulable MBean.
 void 	setSchedulePeriod(long pPeriod)
          Sets the Schedule Period between two scheduled call.
 void 	setStartAtStartup(boolean pStartAtStartup)
          Set the scheduler to start when MBean started or not.
 void 	setTimerName(String pTimerName)
          The JMX Timer to use (or create if not there) 
           -->
 
        <!-- Les temps
     1000 1 seconde
    30000 30 secondes
    60000 1 minute
   600000 10 minutes
  3600000 1 heure	   
 86400000 1 jour
          -->
 
        <!-- Test ->
        <!--  
    <mbean code="org.jboss.varia.scheduler.Scheduler"
           name="MonAppTest:service=Scheduler">
        <attribute name="StartAtStartup">true</attribute>
        <attribute name="SchedulableClass">com.placeoweb.schedul.Test</attribute>
        <attribute name="InitialStartDate">NOW</attribute>
        <attribute name="SchedulePeriod">10000</attribute>
        <attribute name="InitialRepetitions">-1</attribute>
        <attribute name="FixedRate">true</attribute>
    </mbean>
    --> 
 
        <!-- JBoss Scheduler avec la initial start date définie à une heure précise -->
        <!--  
    <mbean code="org.jboss.varia.scheduler.Scheduler" name="MyName:service=Scheduler">
        <attribute name="StartAtStartup">true</attribute>
        <attribute name="SchedulableClass">full.package.for.MySchedulableImpl</attribute>
        <attribute name="InitialStartDate">22/10/2009 11:30</attribute>
        <attribute name="DateFormat">dd/MM/yy HH:mm</attribute>
        <attribute name="SchedulePeriod">86400000</attribute>
        <attribute name="InitialRepetitions">-1</attribute>
    </mbean>
    -->
 
        <!-- JBoss Scheduler avec la initial start date définie à une heure précise -->
        <!--  
    <mbean code="org.jboss.varia.scheduler.Scheduler" name="MyName:service=Scheduler">
        <attribute name="StartAtStartup">true</attribute>
        <attribute name="SchedulableClass">full.package.for.MySchedulableImpl</attribute>
        <attribute name="InitialStartDate">22/10/2009 11:30</attribute>
        <attribute name="DateFormat">dd/MM/yy HH:mm</attribute>
        <attribute name="SchedulePeriod">86400000</attribute>
        <attribute name="InitialRepetitions">-1</attribute>
    </mbean>
    -->
 
 </server>

Et le programme à lancer :

package com.placeoweb.schedul;
 
import java.util.Date;
 
import org.jboss.logging.Logger;
import org.jboss.varia.scheduler.Schedulable;
 
/**
 * CRON - Taches automatisées
 *
 */
public class Test implements Schedulable {
 
	private final Logger logger = Logger.getLogger(this.getClass());
 
	public void perform(Date now, long remainingRepetitions) {
 
        logger.info("perform, now: " + now +
                ", remainingRepetitions: " + remainingRepetitions);
 
        System.out.println(this.getClass()+" SCHEDUL DEBUT "+new Date());
        try {
                MaClasse maClasse = new MaClasse();
                maClasse.lancer();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
        System.out.println(this.getClass()+" SCHEDUL FIN "+new Date());
 
	}
 
}

Ressources sur le scheduler Jboss

class Scheduler note sur le nommage des scheduler pour un lancement en parallèle
Scheduler Instance to allow clients to run this as a scheduling service for any Schedulable instances.
ATTENTION: The scheduler instance only allows to run one schedule at a time. Therefore when you want to run two schedules create to instances with this MBean. Suggested Object Name for the MBean are:
:service=Scheduler,schedule=
This way you should not run into a name conflict.

On a beau eu essayer de suivre ces recommandations, nous n'avons pas réussis à lancer les taches de schedul en parallèle.

:service=Scheduler,schedule=
:service=Scheduler,schedule=

ou

PlaceowebDomain:service=Scheduler,schedule=
PlaceowebDomain:service=Scheduler,schedule=

=> (Domain : DefaultDomain)

ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] Error installing to Real: name=vfs:///C:/jboss-6.0.0.Final/server/default/deploy/JbossTestScheduler.jar state=PreReal mode=Manual requiredState=Real: org.jboss.deployers.spi.DeploymentException: Error deploying: :service=Scheduler,schedule=
Caused by: java.lang.IllegalStateException: :schedule=,service=Scheduler is already installed.

Par contre avec un nom différent on revient sur la gestion séquentielle, l'un après l'autre :

:service=Scheduler,schedule=scheduler1
:service=Scheduler,schedule=scheduler2

ou

PlaceowebDomain:service=Scheduler,schedule=scheduler1
PlaceowebDomain:service=Scheduler,schedule=scheduler2

Donc pas plus de solution pour lancer des taches en parallèle que Running parallel schedules in JBoss 4.0.5.GA...

Variable d'environnement JBoss avec le système de gestion des Properties : SystemProperties

Une bonne solution pour configurer ses applications en dehors des fichiers de déploiement inclus dans les archives, est d'utiliser le PropertiesService avec un fichier de propriétés dédié à votre application pour lister les variables d'environnement.

Créer un fichier <nomApp>.properties dans le répertoire conf (JBOSS_HOME/default/conf par défaut) où tu liste les différentes variables d'environnement nécessaires à ton application sous la forme :

clé1=valeur1
clé2=valeur2

Puis modifier le fichier properties-service.xml (dans le répertoire où est deployé ton application JBOSS_HOME/default/deploy par exemple) : en ajoutant les lignes suivantes :


<!-- ==================================================================== -->
  <!-- System Properties Service                                            -->
  <!-- ==================================================================== -->
 
  <!--
     | Allows rich access to system properties.
   -->
 
  <mbean code="org.jboss.varia.property.SystemPropertiesService" 
	 name="jboss:type=Service,name=SystemProperties">
 
    <!-- 
       | Load properties from each of the given comma seperated URLs
 
    <attribute name="URLList">
      http://somehost/some-location.properties,
      ./conf/somelocal.properties
    </attribute>
 
    -->
 
    <attribute name="URLList">
      ./conf/<nomApp>.properties
    </attribute>

Vous pouvez ensuite accéder aux variables dans votre application :

System.getProperty("clé1");

Accéder à certificats (keyStore / trustStore)

Solution 1 : lancer la JVM avec les options ssl/certificats lors du lancement de Jboss

L'utilisation du System.setProperty("javax.net.ssl.keyStore","/monPath/maKeyStore") ne fonctionnant plus à la volée, et sans rajouter le certificat dans lib\security\cacerts de java (avec keytool -import), voici comment déclarer un autre keyStore dans Jboss6 (autrement qu'avec les variable de la JVM au lancement du serveur Jboss : -javax.net.ssl.keyStore="/monPath/maKeyStore" -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStorePassword=secret

System.setProperty("javax.net.ssl.keyStore",keyStore);
		System.setProperty("javax.net.ssl.keyStoreType", keyStoreType);
		System.setProperty("javax.net.ssl.keyStorePassword", keyStorePassword);
//		Au besoin pour débuguer toutes les flux HTTPS ajoutez :
		System.setProperty("javax.net.debug", "all");

Solution 2 : configurer la sécurité dans le fichier jboss-6.0.0.Final\server\default\conf\bootstrap\security.xml

<!-- http://community.jboss.org/wiki/OverridingkeystoresandtruststoresinJBossAS -->
   <bean name="JBossSSLConfiguration" class="org.jboss.security.ssl.JBossSSLConfiguration">
      <property name="keyStoreURL">/home/mmoyses/my.keystore</property>
      <property name="keyStorePassword">changeit</property>
   </bean>

Et des liens sur les propriétés et SSL

Many Java applications that use SSL rely on the configuration of KeyStores. The default configuration is often based on VM properties such as javax.net.ssl.keyStore, javax.net.ssl.keyStorePassword, javax.net.ssl.keyStoreProvider and javax.net.ssl.trustStore.

Arrêter proprement le serveur

./shutdown.sh -S

ou

./shutdown.sh --shutdown

Sauf que si vous avez spécifier, un mot de passe pour votre console jmx, il faudra s'en servir avec les options -u (user) et -p (password) pour arrêter correctement votre serveur, sinon vous aurez le message :

Exception in thread "main" java.lang.SecurityException: Failed to authenticate principal=null, securityDomain=jmx-console

Pensez a rajouter l'option dans le script de d'arrêt : /etc/init.d/jboss

CMD_STOP="java -classpath $JBOSSCP org.jboss.Shutdown --shutdown -u admin -p votreMotDePasse"

Et si vous lancez Jboss6 depuis Eclipse, et que vous avez modifier le mot de passe, vous aurez l'erreur suivante ;

Exception in thread "main" java.lang.SecurityException: JMXConnectorAuthenticator requires userid/password credentials to be passed inconsulter

http://grepcode.com/file/repository.jboss.org/nexus/content/repositories/releases/org.jboss.jbossas/jboss-as-system/6.0.0.20100429-M3/org/jboss/system/server/jmx/JMXConnectorAuthenticator.java

Liens de configuration de l'arrêt de Jboss depuis Eclipse :

Pour ma part, C:\eclipse-jee-helios-win32\eclipse\plugins\org.eclipse.jst.server.generic.jboss_1.6.1.v200904151730\servers\jboss5.serverdef contient :

<stop>
		<mainClass>org.jboss.Shutdown</mainClass>
		<workingDirectory>${serverRootDirectory}/bin</workingDirectory>
		<programArguments>-S</programArguments>
		<vmParameters>-Djboss.boot.loader.name=shutdown.bat</vmParameters>
		<classpathReference>jboss.shutdown</classpathReference>
	</stop>

Alors que j'éteins le serveur comme ceci :

JAVAPTH="/APP/jre1.6.0_22/bin"
JBOSS_HOME=${JBOSS_HOME:-"/APP/jboss-4.2.3.GA-jdk6"}
JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.jar:$JBOSS_HOME/client/jnet.jar"}
CMD_STOP="$JAVAPTH/java -classpath $JBOSSCP org.jboss.Shutdown --shutdown -u admin -p mySecretPass"

Obtenir des infos de la jmx-console en ligne de commande

Par exemple pour consulter la valeur de l'Attribute Name : "AvailableConnectionCount" sur votre pool SQL nommé "DefaultDS" :

Correspondant à la valeur consultable sur la jmx-console web : /jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.jca%3Aservice%3DManagedConnectionPool%2Cname%3DDefaultDS

Name	Domain	jboss.jca
               service	ManagedConnectionPool
               name	DefaultDS
Java Class	org.jboss.resource.connectionmanager.JBossManagedConnectionPool
$ /APP/jboss/bin/twiddle.sh -u "votreUserJmx" -p "votrePasswordJmx" get "jboss.jca:name=DefaultDS,service=ManagedConnectionPool" AvailableConnectionCount
AvailableConnectionCount=20

Jboss CXF

Avec la version 6.0 et 6.1 de Jboss, vous aurez droit à

JBoss Web Services - Stack CXF Server 3.4.1.GA (based on Apache CXF 2.3.1)

JBoss Web Services - Stack CXF

Ressources