2016-07-08 4 views
0

ich mit der Anlegestelle Standalone-Version 9.3.9 (start.jar) und bekam die folgende Frage gerade arbeite:Wenn HTTP/2 aktiviert ist, Jetty Stopp-Port nicht funktioniert

Die Jetty hat SSL aktiviert und kann nur über https erreicht werden. Die Start- und Stopp des Anlegesteg-Server wird von zwei Scripte verwaltet, die den Stopp-Port und die Stop-Taste definiert:

java -DSTOP.PORT=PORT -DSTOP.KEY=secret start.jar 

PORT und KEY sind nur Platzhalter

Über den --stop Parameter Der Jetty-Server wird ordnungsgemäß beendet. Jetzt, wenn das Modul http2 aktiviert ist (es funktioniert einwandfrei) und das Stopp-Skript ausgeführt wird, erhalte ich den folgenden Fehler (erste Zeile wird übersetzt).

java.net.ConnectException: Connection refused 
at java.net.PlainSocketImpl.socketConnect(Native Method) 
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
at java.net.Socket.connect(Socket.java:589) 
at java.net.Socket.connect(Socket.java:538) 
at java.net.Socket.<init>(Socket.java:434) 
at java.net.Socket.<init>(Socket.java:244) 
at org.eclipse.jetty.start.Main.stop(Main.java:512) 
at org.eclipse.jetty.start.Main.stop(Main.java:491) 
at org.eclipse.jetty.start.Main.doStop(Main.java:479) 
at org.eclipse.jetty.start.Main.start(Main.java:403) 
at org.eclipse.jetty.start.Main.main(Main.java:75) 

und der Server wird nicht heruntergefahren. Inspizierte mit ps aux gibt es auch jetzt zwei Prozesse, einer von ihnen hat die folgende Zeile enthält und wird auch hervorgebracht, wenn http2 deaktiviert ist:

java -DSTOP.PORT=PORT -DSTOP.KEY=secret 

Die andere (neu) ein enthält einen riesigen hässlichen Aufruf an Java und es sieht wie es unterschiedliche Ressourcen über Xbootclasspath

java -Xbootclasspath/p:lib/alpn/alpn-boot-8.1.7.v20160121.jar 
-Djava.io.tmpdir=/tmp -Djetty.home=jettyfolder/jetty-9.3.9 
-Djetty.base=jettyfolder/jetty-9.3.9/myappbase 
-cp jettyfolder/jetty-9.3.9/lib/apache-jsp/org.eclipse.jdt.core.compiler. 
ecj-4.4.2.jar:jettyfolder/jetty-9.3.9/lib/apachejsp/org.eclipse.jetty.apache-jsp-9.3.9.v20160517.jar:jettyfolder/jetty-9.3.9/lib/apache- 

geladen ... und so weiter. Wahrscheinlich gehört es zu ALPN, das von HTTP/2 verwendet wird.

Sobald http2 deaktiviert ist (zum Beispiel wenn der Ordner start.d umbenannt wird), funktioniert der Studown via Port und Key wieder.

EDIT2, addierte Ausgabe von start.jar --list-config:

Java Environment: 
----------------- 
java.home = jettyfolder/jetty-9.3.9/jdk1.8.0_91/jre 
java.vm.vendor = Oracle Corporation 
java.vm.version = 25.91-b14 
java.vm.name = Java HotSpot(TM) 64-Bit Server VM 
java.vm.info = mixed mode 
java.runtime.name = Java(TM) SE Runtime Environment 
java.runtime.version = 1.8.0_91-b14 
java.io.tmpdir = /tmp 
user.dir = jettyfolder/jetty-9.3.9/myappbase 
user.language = de 
user.country = DE 

Jetty Environment: 
----------------- 
jetty.version = 9.3.9.v20160517 
jetty.tag.version = master 
jetty.home = jettyfolder/jetty-9.3.9 
jetty.base = jettyfolder/jetty-9.3.9/myappbase 

Config Search Order: 
-------------------- 
<command-line> 
${jetty.base} -> jettyfolder/jetty-9.3.9/myappbase 
${jetty.home} -> jettyfolder/jetty-9.3.9 

JVM Arguments: 
-------------------- 
-Xbootclasspath/p:lib/alpn/alpn-boot-8.1.7.v20160121.jar 

System Properties: 
------------------ 
(no system properties specified) 

Properties: 
----------- 
java.version = 1.8.0_91 
java.version.major = 1 
java.version.minor = 8 
java.version.revision = 0 
java.version.update = 91 
jetty.ssl.port = 8200 
jetty.sslContext.keyManagerPassword = SOMEPASSWORD(placehoder) 
jetty.sslContext.keyStorePassword = SOMEPASSWORD(placehoder) 
jetty.sslContext.keyStorePath = etc/keystore 
jetty.sslContext.trustStorePassword = SOMEPASSWORD(placehoder) 
jetty.sslContext.trustStorePath = etc/keystore 
Jetty Server Classpath: 
----------------------- 
Version Information on 15 entries in the classpath. 
Note: order presented here is how they would appear on the classpath. 
changes to the --module=name command line options will be reflected here. 
    changes to the --module=name command line options will be reflected here. 
0:     3.1.0 | ${jetty.home}/lib/servlet-api-3.1.jar 
1:     3.1.0.M0 | ${jetty.home}/lib/jetty-schemas-3.1.jar 
2:   9.3.9.v20160517 | ${jetty.home}/lib/jetty-http-9.3.9.v20160517.jar 
3:   9.3.9.v20160517 | ${jetty.home}/lib/jetty-server-9.3.9.v20160517.jar 
4:   9.3.9.v20160517 | ${jetty.home}/lib/jetty-xml-9.3.9.v20160517.jar 
5:   9.3.9.v20160517 | ${jetty.home}/lib/jetty-util-9.3.9.v20160517.jar 
6:   9.3.9.v20160517 | ${jetty.home}/lib/jetty-io-9.3.9.v20160517.jar 
7:   9.3.9.v20160517 | ${jetty.home}/lib/jetty-security-9.3.9.v20160517.jar 
8:   9.3.9.v20160517 | ${jetty.home}/lib/jetty-servlet-9.3.9.v20160517.jar 
9:   9.3.9.v20160517 | ${jetty.home}/lib/jetty-alpn-server-9.3.9.v20160517.jar 
10:   9.3.9.v20160517 | ${jetty.home}/lib/jetty-webapp-9.3.9.v20160517.jar 
11:   9.3.9.v20160517 | ${jetty.home}/lib/jetty-deploy-9.3.9.v20160517.jar 
12:   9.3.9.v20160517 | ${jetty.home}/lib/http2/http2-common-9.3.9.v20160517.jar 
13:   9.3.9.v20160517 | ${jetty.home}/lib/http2/http2-hpack-9.3.9.v20160517.jar 
14:   9.3.9.v20160517 | ${jetty.home}/lib/http2/http2-server-9.3.9.v20160517.jar 

Jetty Active XMLs: 
------------------ 
${jetty.home}/etc/jetty.xml 
${jetty.home}/etc/jetty-ssl.xml 
${jetty.home}/etc/jetty-ssl-context.xml 
${jetty.home}/etc/jetty-alpn.xml 
${jetty.home}/etc/jetty-deploy.xml 
${jetty.home}/etc/jetty-http2.xml 
${jetty.home}/etc/jetty-https.xml 
+0

Führen Sie dies aus und aktualisieren Sie Ihre Frage mit der Ausgabe ... '$ cd/pfad/zu/myappbase && java -jar /pfad/to/jetty-dist/start.jar --list-config' –

+0

mit oder ohne http2? – Akkusativobjekt

+0

da es mit http2 passiert, habe ich sagen, haben Sie das http2-Modul aktiviert mit Ihnen die Konfig. –

Antwort

0

Schließlich fand ich eine Lösung:

Statt -DSTOP.PORT=PORT -DSTOP.KEY=secret auf den Aufruf des Java-Binary hinzuzufügen, habe ich es einfach auf die start.ini Datei des Anlegesteg-Server. Die ersten beiden Zeilen meiner start.ini sieht nun wie:

-DSTOP.PORT=PORT 
-DSTOP.KEY=secret 

und es funktioniert! Ich denke, die genaue Position in der Konfigurationsdatei spielt keine Rolle. Auch sind beide Parameter mit px aux nicht mehr sichtbar.

0

Die Option -DSTOP.PORT=PORT als ungültig erklärt ist.

Der Wert sollte eine Portnummer sein, an die Jetty die Berechtigungen zum Binden hat.

Wählen Sie eine Zahl zwischen 1025 und 65534 und verwenden Sie diese.

ZB: -DSTOP.PORT=27272

+0

Es ist nur ein Platzhalter, ich werde meine Frage aktualisieren, um es klarer zu machen – Akkusativobjekt

Verwandte Themen