2016-07-27 59 views
2

Mit dem Befehl systemctl systemctl restart glassfish startet GF ordnungsgemäß neu.Glassfish kann nicht vom Webportail neu gestartet werden, funktioniert aber mit dem Befehl asadmin

Aber wenn ich versuche, über das Web Portail https://127.0.0.1:4848=> Server => Neustart neu starten, scheitert es ohne Grund. Glassfish stoppt, aber startet nie wieder.

Ich verwende Glassfish 3.1.2.2 auf Fedora 20 mit Java 1.6.0_45 x86_64. (Ich habe auch mit GF 4.1 auf Centos 7 mit Java 1.8.0_66 x86_64 mit dem gleichen Ergebnis versucht)

Hier ist meine glassfish.service Datei:

[Unit] 
Description=GlassFish Server 

[Service] 
User=glassfish 
ExecStart=/usr/share/glassfish3/glassfish/bin/asadmin start-domain 
ExecStop=/usr/share/glassfish3/glassfish/bin/asadmin stop-domain 
ExecReload=/usr/share/glassfish3/glassfish/bin/asadmin restart-domain 
Type=forking 

[Install] 
WantedBy=multi-user.target 

Hier ist die Service-Status systemctl status glassfish -l:

glassfish.service - GlassFish Server 
    Loaded: loaded (/usr/lib/systemd/system/glassfish.service; enabled) 
    Active: failed (Result: exit-code) since Wed 2016-07-27 11:17:22 CEST; 52s ago 
    Process: 9366 ExecStop=/usr/share/glassfish3/glassfish/bin/asadmin stop-domain (code=exited, status=0/SUCCESS) 
    Process: 877 ExecStart=/usr/share/glassfish3/glassfish/bin/asadmin start-domain (code=exited, status=0/SUCCESS) 
Main PID: 1420 (code=exited, status=10) 

Jul 27 10:24:20 decoder asadmin[877]: Successfully started the domain : domain1 
Jul 27 10:24:20 decoder asadmin[877]: domain Location: /usr/share/glassfish3/glassfish/domains/domain1 
Jul 27 10:24:20 decoder asadmin[877]: Log File: /usr/share/glassfish3/glassfish/domains/domain1/logs/server.log 
Jul 27 10:24:20 decoder asadmin[877]: Admin Port: 4848 
Jul 27 10:24:20 decoder asadmin[877]: Command start-domain executed successfully. 
Jul 27 10:24:20 decoder systemd[1]: Started GlassFish Server. 
Jul 27 11:17:22 decoder systemd[1]: glassfish.service: main process exited, code=exited, status=10/n/a 
Jul 27 11:17:22 decoder asadmin[9366]: CLI306 Warning - The server located at /usr/share/glassfish3/glassfish/domains/domain1 is not running. 
Jul 27 11:17:22 decoder asadmin[9366]: Command stop-domain executed successfully. 
Jul 27 11:17:22 decoder systemd[1]: Unit glassfish.service entered failed state. 

Hier ist die GF server.log:

[#|2016-07-27T11:17:20.805+0200|INFO|glassfish3.1.2|javax.enterprise.system.tools.admin.com.sun.enterprise.v3.admin|_ThreadID=23;_ThreadName=Thread-2;|Server restart initiated|#] 

[#|2016-07-27T11:17:20.810+0200|WARNING|glassfish3.1.2|javax.enterprise.system.tools.admin.com.sun.enterprise.v3.admin|_ThreadID=23;_ThreadName=Thread-2;|There should be only 1 primordial module but 0 primordial modules were found.|#] 

Jul 27, 2016 11:17:21 AM com.sun.enterprise.admin.launcher.GFLauncherLogger info 
INFO: JVM invocation command line: 
-XX:+UnlockDiagnosticVMOptions 
-XX:PermSize=64m 
-XX:MaxPermSize=192m 
-XX:NewRatio=2 
-Xmx512m 
-client 
-javaagent:/usr/share/glassfish3/glassfish/lib/monitor/flashlight-agent.jar 
-Dfelix.fileinstall.disableConfigSave=false 
-Djavax.net.ssl.keyStore=/usr/share/glassfish3/glassfish/domains/domain1/config/keystore.jks 
-Djava.awt.headless=true 
-Dfelix.fileinstall.poll=5000 
-Djava.endorsed.dirs=/usr/share/glassfish3/glassfish/modules/endorsed:/usr/share/glassfish3/glassfish/lib/endorsed 
-Dfelix.fileinstall.bundles.startTransient=true 
-Djavax.net.ssl.trustStore=/usr/share/glassfish3/glassfish/domains/domain1/config/cacerts.jks 
-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as 
-DANTLR_USE_DIRECT_CLASS_LOADING=true 
-Djava.security.auth.login.config=/usr/share/glassfish3/glassfish/domains/domain1/config/login.conf 
-Dgosh.args=--nointeractive 
-Dosgi.shell.telnet.maxconn=1 
-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver 
-Dfelix.fileinstall.dir=/usr/share/glassfish3/glassfish/modules/autostart/ 
-Dosgi.shell.telnet.port=6666 
-Djava.security.policy=/usr/share/glassfish3/glassfish/domains/domain1/config/server.policy 
-Dfelix.fileinstall.log.level=2 
-Duser.timezone=Europe/Zurich 
-Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory 
-Dosgi.shell.telnet.ip=127.0.0.1 
-Dcom.sun.aas.instanceRoot=/usr/share/glassfish3/glassfish/domains/domain1 
-Dcom.sun.aas.installRoot=/usr/share/glassfish3/glassfish 
-Djava.ext.dirs=/usr/java/jdk1.6.0_45/lib/ext:/usr/java/jdk1.6.0_45/jre/lib/ext:/usr/share/glassfish3/glassfish/domains/domain1/lib/ext 
-Dfelix.fileinstall.bundles.new.start=true 
Jul 27, 2016 11:17:22 AM com.sun.enterprise.admin.launcher.GFLauncherLogger info 
INFO: Successfully launched in 3 msec. 

ich keine SELinux Dementis haben, hier ist die einzige Spur:

type=SERVICE_STOP msg=audit(1467638602.044:1652): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg=' comm="glassfish" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed' 

Einstellung SELinux-Modus permissiven keine Wirkung. Ich habe absolut keine Ahnung, was schief läuft ...

Ich habe auch GF 3.1.2.2 auf Centos 6 getestet und es funktioniert. Vielleicht hängt es mit systemctl zusammen (Fedora 20 und Centos 7 verwenden beide standardmäßig systemctl)?

+0

Vielleicht ist die Ursache hinzufügen [http://serverfault.com/questions/112795/how-to-run-a-server-on- Port-80-als-normal-Benutzer-auf-Linux] (http://serverfault.com/questions/112795/how-to-run-a-server-on-port-80-as-a-normal -user-on-linux) dieses Problems –

+0

Glassfish hört Port 80/443 nicht ab, aber 8080/8181 (standardmäßig ist das mindestens meine Konfiguration) –

+1

Haben Sie das ähnliche Problem, hier gepostet: https: // serverfault.com/questions/851683/glassfish-on-centos-7-system-asadmin-neustart-domain-doesnt-work-as-expec –

Antwort

0

Ich musste den Standard Admin-Port in 8080 verlassen und eine "Port Forwarding" Firewall-Regel von 80 bis 8080 hinzufügen und dann funktioniert der Glassfish-Neustart korrekt.

Von https://serverfault.com/a/112798/393296 und die FirewallD Regel war (für Centos7)

  • sudo Firewall-cmd --zone = "dmz" --add-forward-port = port = 80: proto = tcp: toport = 8080 --permanent
  • sudo Firewall-cmd --reload

Hinweis: Denken Sie daran, Ihre Zone zu Ihrem aktiven zu ändern (in diesem Fall meine aktive Zone ist dmz - more info about FirewallD Centos7)

+0

Ich benutze Apache um eingehende HTTP-Anfrage an Glassfish umzuleiten. Glassfish hat die Standardkonfiguration (Listening für 8080 und 8181), also ist dies hier nicht das Problem. –

0

Bedarf den Abschnitt [Service] Restart=on-failure

+0

Nur versucht, das Verhalten bleibt gleich mit oder ohne. Danke trotzdem –