Wir verwenden Jetty 9.3, das mehrere Webservice-Endpunkte integriert und veröffentlicht (unter Verwendung von Endpoint.publish). Ich bin jedoch unsicher, wie man einige von ihnen auf einem anderen TCP-Port veröffentlichen kann.Jetty veröffentlicht Endpunkte auf mehreren TCP-Ports
Endpoint-Publishing:
endpoint = Endpoint.publish("http://0.0.0.0:8081/services/Service1"), service1);
endpoint = Endpoint.publish("http://0.0.0.0:8081/services/Service2"), service2);
endpoint = Endpoint.publish("http://0.0.0.0:8082/services/Service3"), service3);
Erwartet: Fabrikat Leistung 1 und 2 verfügbar auf Port 8081 und nur 8081 und Service3 auf Port 8082 und nur 8082.
Aktuell: Alle drei Dienste verfügbar an beiden TCP-Ports.
Einrichten unserer Embedded-Anlegestelle verwenden mit:
JettyHttpServerProvider.setServer(jettyWebServer);
System.setProperty("com.sun.net.httpserver.HttpServerProvider", JettyHttpServerProvider.class.getName());
Für Vollständigkeit, Anlegestelle Webserver init:
jettyWebServer = new Server(new DelegatingThreadPool(new QueuedThreadPool()));
ServerConnector connector = new ServerConnector(jettyWebServer);
//connector.setHost();
connector.setPort(8081);
jettyWebServer.addConnector(connector);
Wäre dies für die zweite Port sonst Endpoint-Publishing für nicht hinzuzufügen arbeiten Service3:
connector = new ServerConnector(jettyWebServer);
//connector.setHost(...);
connector.setPort(8082);
jettyWebServer.addConnector(connector);
ContextHandlerCollection contexts = new ContextHandlerCollection();
jettyWebServer.setHandler(contexts);
Aber dann sind alle drei auf Port 8081 und 8082 verfügbar. C Es gibt anscheinend nur eine einzige Methode: JettyHttpServerProvider.setServer(...)
, kein Add oder ähnliches.
Jede Hilfe wird geschätzt.
Danke, funktioniert perfekt. Fast excellent ausgezeichnete Antwort, gut gemacht und sehr geschätzt. –