Probleme mit dem Herunterfahren von JBoss in Eclipse, wenn ich eine änderung JNDI-Anschluss

StackOverflow https://stackoverflow.com/questions/173487

Frage

1. phase

Ich habe ein problem shutting down my running JBoss-Instanz unter Eclipse, seit ich geändert die JNDI-Anschluss von JBoss.Natürlich kann ich ihn Herunterfahren über die Konsole anzeigen, aber nicht mit die Stopp-Taste (es noch sucht JNDI-port auf dem default-port 1099).Ich bin auf der Suche weiterleiten an alle Lösungen.Danke!!!

Umwelt:

  • JBoss 4.0.2 (mit Standard)
  • Eclipse 3.4.0.(mithilfe von JBoss Tools 2.1.1.GA)

Standard-ports:1098, 1099 Geändert ports:11098, 11099

Ich änderte den folgenden Teil in 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>

Eclipse-setup:

Über meine JBoss-Tools-Einstellungen: Ich hatte eine ältere version, ich habe dieses problem, ich habe gelesen über einige bugfix in JbossTools, so aktualisiert 2.1.1.GA.Jetzt die buttons geändert, und ich habe einen neuen Einstellungen anzeigen, aber ich kann etwas ändern,...zu sein scheint abnorme, sowie:

Error-dialog:

Der 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. phase:

Nach der Erstellung eines neuen Servers in der Datei/neu/weitere/server, kam es erscheinen in der Registerkarte "Einstellungen".Nun die stop-Taste arbeitet (der server empfängt die shutdown-Nachrichten ohne zusätzliche Modifikationen an den jndi-Anschluss -- es gibt keine Möglichkeit, es jetzt), aber es immer noch wirft eine Fehlermeldung, wenn anders, es ist ohne Ausnahme-stack-trace:"Server-JBoss-4.0-Server nicht stoppen."

War es hilfreich?

Lösung

OK, was Sie tun müssen, ist File-> New-> Sonstige-> Server, und richten Sie den JBoss-Server gibt. Es erscheint dann in Einstellungen-> JBossTools-> Server.

Convoluted.

Andere Tipps

Hier ist eine detaillierte Lösung für dieses problem:Die Eclipse WTP server-connector wird nicht heruntergefahren JBoss wenn die jndi-port ist zugeordnet.

Dies ist, weil die Standard-server-profile connector nicht verwenden Ihre eigenen alias für die jndiPort.Dieses problem wird auch diskutiert eclipse.org:http://www.eclipse.org/forums/index.php?t=msg&goto=489439&S=0db4920aab0a501c80a626edff84c17d#msg_489439

Die Lösung kommt von der .serverdef-Dateien in eclipse:


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

Sie erklären, dass Sie einer xml-Eigenschaft für den jndi-Anschluss:


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

Dieser muss einfach nur eingesetzt werden, wo die serverdef hat der STOP-Befehl codiert:

Also diese:


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

wird zu:


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

Die Philosophie für diese verifiziert werden kann durch Vergleich mit der definition für die jndi-Verbindung:


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

Kredit für die inspiration für diesen Allgemeinen Fall zu beheben geht an:Moisa Laurentiu Florin.Es war Ihr Beitrag, habe mich für einen Weg der Substitution in der ${jndiPort} anstelle eines hart codierten Wert.

Dieses Update behebt plain Eclipse WTP server-connector.Ich bin immer noch die Untersuchung der JBOss-IDE-Anschluss

Öffnen jboss-Pfad \ bin \ shutdown.jar

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

und offene jboss-Pfad \ bin \ shutdown.jar \ jndi.properties

und ändern

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

In MyEclipse-Server-Konfiguration finden Sie das Feld "Optional Shutdown Argument", die mit dem Standardwert gefüllt ist

--shutdown

Ändern Sie ihn auf

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

Editiert:

Leider ist diese Antwort auf MyEclipse verwendet. Allerdings muss es ein Ort, wo Sie auch die JBoss Abschaltbefehl in Ihrer Umgebung angeben. Vielleicht nehmen Sie einen Blick auf die „Ausführen ...“ Konfigurationen?

Sie sollten in der Datei "/home/fmoisa/workspace/eclipse/plugins/org.eclipse.jst.server.generic.jboss_1.5.206.v20090115/servers/jboss42.serverdef" dies ändern:

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

folgt aus:

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

gl alle;)

Verwenden Sie den Server-Adapter zur Verfügung gestellt von JBoss Tools und nicht die, die standardmäßig von den Eclipse-WTP kommt.

Dann können Sie einfach einen Doppelklick auf dem Server und Sie können den JNDI-Anschluss bearbeiten (die btw. Automatisch aus der XML-Konfiguration aufhob, wenn Sie irgend etwas nicht tun). Sie können auch den Trick über den JNDI-Port über Kommandozeilenargumente in der Startkonfiguration einstellen, aber das ist mehr Probleme als nur die Portwerte zu setzen.

Dies wurde geändert in JBoss 6.0.0M3.

Der Stopp-Befehl ist jetzt:

  

"- s Service: JMX: rmi: /// jndi / rmi: // localhost: 1090 / jmxrmi"

Beachten Sie, dass der Port auch geändert: Es ist nicht mehr der JNDI-Port bei 1099 , sondern RMI / JMX-Port 1090 . Also, werden Sie in der Serverdefinition eines anderen Konfigurationsparameter müssen.

Ich weiß nicht, ob die "JNDI-Port" Parameter auf alle für JBoss 6.0.0M3-Server erforderlich ist.

Ich habe eine modifizierte Eclipse-Plugin unter http: //www.cs. hs-rm.de/~knauf/public/ , die eine Serverdefinition für 6.0.0M3 einschließlich dieser Änderung enthält. Diese Seite auch Links zu einem JBoss-Forum-Thread mit mehr Details über diese Änderung.

Mit freundlichen Grüßen

Wolfgang Knauf

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top