Jak naprawić JBoss AS zatrzymany przy uruchamianiu w systemie Linux?

Rozwiązywanie problemów z uruchomieniem JBoss 7 na CentOS 7

W miniony weekend spędziłem trochę czasu, eksperymentując z serwerem aplikacji JBoss na platformie CentOS 7. Po zainstalowaniu wersji 7.1.1 napotkałem trudności przy próbie jego uruchomienia – proces zatrzymywał się na etapie startowym.

    [[email protected] bin]# ./standalone.sh
    =========================================================================
    JBoss Bootstrap Environment
    JBOSS_HOME: /home/chandan/Downloads/jboss-as-7.1.1.Final
    JAVA: java
    JAVA_OPTS: -server -XX:+UseCompressedOops -XX:+TieredCompilation -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Djboss.server.default.config=standalone.xml
    =========================================================================
    OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
    13:39:15,689 INFO  [org.jboss.modules] JBoss Modules version 1.1.1.GA
    13:39:16,236 INFO  [org.jboss.msc] JBoss MSC version 1.0.2.GA
    13:39:16,346 INFO  [org.jboss.as] JBAS015899: JBoss AS 7.1.1.Final "Brontes" starting
  

Pomimo długiego oczekiwania, serwer nie startował prawidłowo.

Czy spotykasz się z podobnym problemem? Spokojnie, nie jesteś sam!

Okazuje się, że istnieje dobrze udokumentowany konflikt między JBoss 7 a Javą 8. Rozwiązaniem jest powrót do Javy 7. Na początek sprawdź, czy przypadkiem nie korzystasz z Javy 8.

    [[email protected] bin]# java -version
    openjdk version "1.8.0_111"
    OpenJDK Runtime Environment (build 1.8.0_111-b15)
    OpenJDK 64-Bit Server VM (build 25.111-b15, mixed mode)
    [[email protected] bin]#
  

Jak widać, zainstalowana jest u mnie Java 8, a potrzebna jest Java 7.

Jeśli pracujesz na systemie CentOS, możesz łatwo przełączyć się na starszą wersję Javy za pomocą poniższej komendy:

update-alternatives --config java

Ta komenda umożliwi wybór preferowanej wersji Javy.

      [[email protected] bin]# update-alternatives --config java
      There are 2 programs which provide 'java'.
        Selection     Command
      -----------------------------------------------
       1           java-1.7.0-openjdk.x86_64 (/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.121-2.6.8.0.el7_3.x86_64/jre/bin/java)
      *+ 2           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-2.b15.el7_3.x86_64/jre/bin/java)
    
      Enter to keep the current selection[+], or type selection number:
    

Wpisz „1”, aby wybrać Javę 7. I gotowe!

Jeśli używasz systemu RHEL lub nie masz zainstalowanej Javy 7, musisz ją najpierw zainstalować i skonfigurować zmienną PATH.

Po zmianie na Javę 7, JBoss 7 powinien uruchomić się bez problemów.

      [[email protected] bin]# ./standalone.sh
      =========================================================================
      JBoss Bootstrap Environment
      JBOSS_HOME: /home/chandan/Downloads/jboss-as-7.1.1.Final
      JAVA: java
      JAVA_OPTS: -server -XX:+UseCompressedOops -XX:+TieredCompilation -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Djboss.server.default.config=standalone.xml
      ========================================================================
      13:46:04,337 INFO  [org.jboss.modules] JBoss Modules version 1.1.1.GA
      13:46:04,622 INFO  [org.jboss.msc] JBoss MSC version 1.0.2.GA
      13:46:04,661 INFO  [org.jboss.as] JBAS015899: JBoss AS 7.1.1.Final "Brontes" starting
      13:46:05,552 INFO  [org.xnio] XNIO Version 3.0.3.GA
      13:46:05,568 INFO  [org.jboss.as.server] JBAS015888: Creating http management service using socket-binding (management-http)
      13:46:05,584 INFO  [org.xnio.nio] XNIO NIO Implementation Version 3.0.3.GA
      13:46:05,621 INFO  [org.jboss.as.logging] JBAS011502: Removing bootstrap log handlers
      13:46:05,643 INFO  [org.jboss.remoting] (MSC service thread 1-3) JBoss Remoting version 3.2.3.GA
      13:46:05,651 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 31) JBAS010280: Activating Infinispan subsystem.
      13:46:05,722 INFO  [org.jboss.as.configadmin] (ServerService Thread Pool -- 26) JBAS016200: Activating ConfigAdmin Subsystem
      13:46:05,734 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 38) JBAS011800: Activating Naming Subsystem
      13:46:05,778 INFO  [org.jboss.as.osgi] (ServerService Thread Pool -- 39) JBAS011940: Activating OSGi Subsystem
      13:46:05,871 INFO  [org.jboss.as.security] (ServerService Thread Pool -- 44) JBAS013101: Activating Security Subsystem
      13:46:05,884 INFO  [org.jboss.as.naming] (MSC service thread 1-1) JBAS011802: Starting Naming Service
      13:46:05,901 INFO  [org.jboss.as.webservices] (ServerService Thread Pool -- 48) JBAS015537: Activating WebServices Extension
      13:46:05,983 INFO  [org.jboss.as.mail.extension] (MSC service thread 1-1) JBAS015400: Bound mail session [java:jboss/mail/Default]
      13:46:06,001 INFO  [org.jboss.as.connector] (MSC service thread 1-2) JBAS010408: Starting JCA Subsystem (JBoss IronJacamar 1.0.9.Final)
      13:46:06,002 INFO [org.jboss.as.security] (MSC service thread 1-2) JBAS013100: Current PicketBox version=4.0.7.Final
      13:46:06,104 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
      13:46:06,440 INFO  [org.jboss.ws.common.management.AbstractServerConfig] (MSC service thread 1-3) JBoss Web Services - Stack CXF Server 4.0.2.GA
      13:46:06,522 INFO  [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-4) Starting Coyote HTTP/1.1 on http--127.0.0.1-8080
      13:46:06,746 INFO  [org.jboss.as.server.deployment.scanner] (MSC service thread 1-4) JBAS015012: Started FileSystemDeploymentService for directory /home/chandan/Downloads/jboss-as-7.1.1.Final/standalone/deployments
      13:46:06,747 INFO  [org.jboss.as.remoting] (MSC service thread 1-1) JBAS017100: Listening on /127.0.0.1:9999
      13:46:06,796 INFO  [org.jboss.as.remoting] (MSC service thread 1-3) JBAS017100: Listening on /127.0.0.1:4447
      13:46:06,883 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-3) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
      13:46:07,003 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
      13:46:07,004 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss AS 7.1.1.Final "Brontes" started in 3468ms - Started 133 of 208 services (74 services are passive or on-demand)
    

Mam nadzieję, że to rozwiązanie okaże się pomocne. Jeśli jesteś zainteresowany głębszą wiedzą o administracji i konfiguracji JBoss EAP, zachęcam do dalszego zgłębiania tematu.

Czy ten artykuł okazał się dla Ciebie wartościowy? Zachęcam do podzielenia się nim z innymi!


newsblog.pl