Pregunta

1ra fase

Tengo un problema al cerrar mi instancia de JBoss en ejecución en Eclipse desde que cambié   El puerto JNDI de JBoss. Por supuesto que puedo apagarlo desde la vista de la consola pero no con   el botón de parada (todavía busca el puerto JNDI en el puerto 1099 predeterminado). Estoy buscando   reenviar a cualquier solución. ¡Gracias!

entorno utilizado:

  • JBoss 4.0.2 (usando predeterminado )
  • Eclipse 3.4.0. (utilizando herramientas JBoss 2.1.1.GA)

Puertos predeterminados: 1098, 1099 Puertos modificados: 11098, 11099

Cambié la siguiente parte en 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>

Configuración de Eclipse:

Acerca de mis preferencias de herramientas JBoss: Tuve una versión anterior, tuve este problema, leí sobre algunas correcciones de errores en JbossTools, así que actualizado a 2.1.1.GA. Ahora los botones cambiaron, y tengo una nueva vista de preferencias, pero no puedo modificar nada ... parece ser también anormal:

Diálogo de error:

El seguimiento de pila:

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" 

2a fase:

Después de crear un nuevo Servidor en Archivo / nuevo / otro / servidor, apareció en la pestaña de preferencias. Ahora el botón de parada está funcionando (el servidor recibe los mensajes de apagado sin ninguna modificación adicional del puerto jndi, ahora no hay oportunidad), pero sigue mostrando un mensaje de error, aunque es diferente, no tiene una excepción en el seguimiento de la pila: " El servidor JBoss 4.0 Server no se pudo detener. & Quot;

¿Fue útil?

Solución

Bien, lo que tienes que hacer es File- > New- > Other- > Server, y configura tu servidor JBoss allí. Luego aparecerá en Preferencias- > JBossTools- > Servidores.

Enrevesado.

Otros consejos

Aquí hay una solución detallada para este problema: El conector del servidor WTP de Eclipse no apagará JBoss cuando se vuelva a asignar el puerto jndi.

Esto se debe a que los perfiles de conector de servidor predeterminados no usan su propio alias para el jndiPort. Este problema también se discute en eclipse.org: http://www.eclipse.org/forums/ index.php? t = msg & amp; goto = 489439 & amp; S = 0db4920aab0a501c80a626edff84c17d # msg_489439

La solución proviene de los archivos .serverdef en eclipse:


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

Ellos declaran una propiedad xml para el puerto jndi:


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

Esto simplemente debe usarse cuando la definición del servidor tiene el comando STOP codificado:

Así que esto:


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

se convierte en esto:


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

La filosofía para esto se puede verificar en comparación con la definición de la conexión jndi:


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

El crédito por la inspiración para este arreglo de caso general se dirige a: Moisa Laurentiu Florin. Fue su contribución la que me permitió buscar una forma de sustituir en $ {jndiPort} en lugar de un valor codificado.

Esta solución corrige ambos conectores de servidor WTP Eclipse. Todavía estoy investigando el conector IDE de JBOss

Abrir jboss-path \ bin \ shutdown.jar

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

y abra jboss-path \ bin \ shutdown.jar \ jndi.properties

y cambiar

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

En la configuración del servidor MyEclipse, encontrará el campo " Argumento de cierre opcional " ;, que se rellena con el valor predeterminado

--shutdown

Cambia a

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

Editado:

Lo siento, esta respuesta está relacionada con MyEclipse. Sin embargo, debe haber algún lugar donde también pueda especificar el comando de apagado de JBoss en su entorno. Tal vez eche un vistazo a " Ejecutar ... " configuraciones?

debe modificar en el archivo " /home/fmoisa/workspace/eclipse/plugins/org.eclipse.jst.server.generic.jboss_1.5.206.v20090115/servers/jboss42.serverdef" esto:

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

a esto:

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

gl todo;)

Utilice el adaptador de servidor provisto por las herramientas de JBoss y no el que viene predeterminado de Eclipse WTP.

Luego, simplemente puede hacer doble clic en el servidor y editar el puerto JNDI (que, por cierto, se toma automáticamente de la configuración XML si no hace nada). También puede hacer el truco de configurar el puerto JNDI a través de los argumentos de la línea de comandos en la Configuración de inicio, pero eso es más problemático que solo establecer los valores del puerto.

Esto se cambió en JBoss 6.0.0M3.

El comando de detención es ahora:

  

" - servicio de s: jmx: rmi: /// jndi / rmi: // localhost: 1090 / jmxrmi "

Tenga en cuenta que el puerto también cambió: Ya no es el puerto JNDI en 1099 , sino que RMI / JMX puerto 1090 . Por lo tanto, necesitará otro parámetro de configuración en la definición del servidor.

No sé si el " Puerto JNDI " el parámetro es obligatorio para los servidores JBoss 6.0.0M3.

Tengo un complemento eclipse modificado en http: //www.cs. hs-rm.de/~knauf/public/ que contiene una definición de servidor para 6.0.0M3 que incluye este cambio. Este sitio también se enlaza con un hilo del foro de JBoss con más detalles sobre este cambio.

Saludos cordiales

Wolfgang Knauf

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top