Question

1ère phase

J'ai un problème à fermer mon instance JBoss en cours d'exécution sous Eclipse depuis que j'ai changé   le port JNDI de JBoss. Bien sûr, je peux l'éteindre à partir de la vue de la console, mais pas avec   le bouton d'arrêt (il recherche toujours le port JNDI au port 1099 par défaut). Je regarde   transmettre à toutes les solutions. Je vous remercie!

Environnement utilisé:

  • JBoss 4.0.2 (en utilisant par défaut )
  • Eclipse 3.4.0. (en utilisant JBoss Tools 2.1.1.GA)

Ports par défaut: 1098, 1099 Ports modifiés: 11098, 11099

J'ai modifié la partie suivante dans jbosspath / server / default / conf / jboss-service.xml:

   <!-- ==================================================================== -->
   <!-- JNDI                                                                 -->
   <!-- ==================================================================== -->

   <mbean code="org.jboss.naming.NamingService"
      name="jboss:service=Naming"
      xmbean-dd="resource:xmdesc/NamingService-xmbean.xml">
      <!-- The call by value mode. true if all lookups are unmarshalled using
      the caller's TCL, false if in VM lookups return the value by reference.
      -->
      <attribute name="CallByValue">false</attribute>
      <!-- The listening port for the bootstrap JNP service. Set this to -1
        to run the NamingService without the JNP invoker listening port.
      -->
      <attribute name="Port">11099</attribute>
      <!-- The bootstrap JNP server bind address. This also sets the default
      RMI service bind address. Empty == all addresses
       -->
      <attribute name="BindAddress">${jboss.bind.address}</attribute>
      <!-- The port of the RMI naming service, 0 == anonymous -->
      <attribute name="RmiPort">11098</attribute>
      <!-- The RMI service bind address. Empty == all addresses
       -->
      <attribute name="RmiBindAddress">${jboss.bind.address}</attribute>
      <!-- The thread pool service used to control the bootstrap lookups -->
      <depends optional-attribute-name="LookupPool"
         proxy-type="attribute">jboss.system:service=ThreadPool</depends>
   </mbean>

   <mbean code="org.jboss.naming.JNDIView"
        name="jboss:service=JNDIView"
        xmbean-dd="resource:xmdesc/JNDIView-xmbean.xml">
   </mbean>

Configuration Eclipse:

À propos de mes préférences JBoss Tools: J'avais une version précédente, j'ai eu ce problème, j'ai lu quelque chose sur un correctif dans JbossTools, donc mis à jour à 2.1.1.GA. Maintenant, les boutons ont changé et j'ai une nouvelle vue des préférences, mais je ne peux rien modifier ... semble également anormal:

Boîte de dialogue d'erreur:

Le stacktrace:

javax.naming.CommunicationException: Could not obtain connection to any of these urls: localhost:1099 [Root exception is javax.naming.CommunicationException: Failed to connect to server localhost:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is java.net.ConnectException: Connection refused: connect]]]
    at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1385)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:579)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
    at javax.naming.InitialContext.lookup(InitialContext.java:347)
    at org.jboss.Shutdown.main(Shutdown.java:202)
Caused by: javax.naming.CommunicationException: Failed to connect to server localhost:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is java.net.ConnectException: Connection refused: connect]]
    at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:254)
    at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1370)
    ... 4 more
Caused by: javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is java.net.ConnectException: Connection refused: connect]
    at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:228)
    ... 5 more
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
    at java.net.Socket.connect(Socket.java:452)
    at java.net.Socket.connect(Socket.java:402)
    at java.net.Socket.<init>(Socket.java:309)
    at java.net.Socket.<init>(Socket.java:211)
    at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:69)
    at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:62)
    at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:224)
    ... 5 more
Exception in thread "main" 

2ème phase:

Après avoir créé un nouveau serveur dans Fichier / nouveau / autre / serveur, il apparaît dans l’onglet Préférences. À présent, le bouton d'arrêt fonctionne (le serveur reçoit les messages d'arrêt sans aucune modification supplémentaire du port jndi - aucune possibilité de le faire pour le moment), mais un message d'erreur, bien que différent, reste affiché, mais sans trace de pile d'exception: " Serveur JBoss 4.0 Server n'a pas réussi à s'arrêter. "

Était-ce utile?

La solution

OK, ce que vous devez faire est Fichier- > Nouveau- > Autre- > Serveur et y configurer votre serveur JBoss. Il apparaîtra ensuite dans Préférences - > JBossTools - > Serveurs.

Convoluted.

Autres conseils

Voici un correctif détaillé pour ce problème: Le connecteur de serveur Eclipse WTP n’arrête pas JBoss lorsque le port jndi est remappé.

Cela est dû au fait que les profils de connecteur de serveur par défaut n'utilisent pas leur propre alias pour jndiPort. Ce problème est également discuté sur eclipse.org: http://www.fr index.php? t = msg & goto = 489439 & S = 0db4920aab0a501c80a626edff84c17d # msg_489439

La solution provient des fichiers .serverdef dans eclipse:


<eclipse>\plugins\org.eclipse.jst.server.generic.jboss_1.5.105.v200709061325\servers\jboss*.serverdef

Ils déclarent une propriété xml pour le port jndi:


<property id="jndiPort"
 label="%jndiPort"
 type="string"
 context="server"
 default="1099" /> 

Ceci doit simplement être utilisé lorsque serverdef a la commande STOP codée:

Donc ceci:


 <stop>
  <mainClass>org.jboss.Shutdown</mainClass>
  <workingDirectory>${serverRootDirectory}/bin</workingDirectory>
  <programArguments>-S</programArguments>
  <vmParameters></vmParameters>
  <classpathReference>jboss</classpathReference>
 </stop>

devient ceci:


 <stop>
  <mainClass>org.jboss.Shutdown</mainClass>
  <workingDirectory>${serverRootDirectory}/bin</workingDirectory>
  <programArguments>-s jnp://${serverAddress}:${jndiPort}</programArguments>
  <vmParameters></vmParameters>
  <classpathReference>jboss</classpathReference>
 </stop>

La philosophie de ceci peut être vérifiée par comparaison à la définition de la connexion jndi:


 <jndiConnection>
  <providerUrl>jnp://${serverAddress}:${jndiPort}</providerUrl>
<initialContextFactory>org.jnp.interfaces.NamingContextFactory</initialContextFactory>
  <jndiProperty>
   <name></name>
   <value></value>
  </jndiProperty>
 </jndiConnection>

Le mérite de l'inspiration pour ce correctif de cas général va à: Moisa Laurentiu Florin. C’est leur contribution qui m’a amené à chercher un moyen de remplacer le $ {jndiPort} par une valeur codée en dur.

Ce correctif corrige le connecteur de serveur Eclipse WTP en clair. J'étudie toujours le connecteur IDE JBOss

Ouvrez jboss-path \ bin \ shutdown.jar

exemple: jboss-4.2.3.GA \ bin \ shutdown.jar

et ouvrez jboss-path \ bin \ shutdown.jar \ jndi.properties

et changer

java.naming.provider.url = jnp: // localhost: 1099 to java.naming.provider.url = jnp: // localhost: 11099

Dans la configuration du serveur MyEclipse, vous trouvez le champ "Argument d'arrêt facultatif", qui est rempli avec la valeur par défaut

.
--shutdown

Changez-le en

-s jnp://localhost:11099 --shutdown

Modifié:

Désolé, cette réponse est liée à MyEclipse. Cependant, vous devez également pouvoir spécifier la commande d’arrêt JBoss dans votre environnement. Vous pouvez peut-être jeter un coup d'œil à la rubrique "Exécuter ...". configurations?

vous devez modifier le fichier "/home/fmoisa/workspace/eclipse/plugins/org.eclipse.jst.server.generic.jboss_1.5.206.v20090115/servers/jboss42.serverdef" ceci:

        org.jboss.Shutdown         $ {serverRootDirectory} / bin         -S         -Djboss.boot.loader.name = shutdown.bat         jboss.shutdown     

à ceci:

        org.jboss.Shutdown         $ {serverRootDirectory} / bin         -S -sjnp: // localhost: 11099         -Djboss.boot.loader.name = shutdown.bat         jboss.shutdown     

gl all;)

Utilisez l'adaptateur de serveur fourni par les outils JBoss et non celui fourni par défaut par Eclipse WTP.

Ensuite, vous pouvez simplement double-cliquer sur le serveur et modifier le port JNDI (qui est automatiquement repris de la configuration XML si vous ne faites rien). Vous pouvez également faire l’astuce sur la définition du port JNDI via des arguments de ligne de commande dans la configuration de lancement, mais c’est plus un problème que de simplement définir les valeurs du port.

Cela a été modifié dans JBoss 6.0.0M3.

La commande d'arrêt est maintenant:

  

"- s service: jmx: rmi: /// jndi / rmi: // localhost: 1090 / jmxrmi"

Notez que le port a également changé: Il ne s'agit plus du port JNDI à 1099 , mais du port RMI / JMX 1090 . Vous aurez donc besoin d’un autre paramètre de configuration dans la définition du serveur.

Je ne sais pas si le " port JNDI " Ce paramètre est obligatoire pour les serveurs JBoss 6.0.0M3.

J'ai un plug-in eclipse modifié sur http: //www.cs. hs-rm.de/~knauf/public/ qui contient une définition de serveur pour 6.0.0M3, y compris cette modification. Ce site contient également des liens vers un fil de discussion sur le forum JBoss contenant plus de détails sur ce changement.

Cordialement

Wolfgang Knauf

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top