J'essaie de lancer Jetty en tant que service sur Ubuntu 16.04 sur le port 8010. Il échoue avec une exception SocketException: Permission refusée.
Pour autant que je sache, les ports supérieurs à 1024 sont gratuits, alors je me demande pourquoi je reçois cette erreur et comment la corriger. J'avais déjà essayé le port 8080 auparavant, ce qui donnait la même erreur et une autre: java.net.BindException: adresse déjà utilisée: bind. C'est pourquoi je l'ai changé pour le port 8010 qui n'est pas utilisé.
Je sais que les ports <1024 nécessitent un accès root, mais pour autant que je sache, les ports supérieurs à 1024 devraient être autorisés à utiliser sans cela. Alors, comment puis-je accorder à mon service le droit de se lier sur le port?
Ceci est un extrait du journal de la jetée:
2017-09-28 06:24:57.287:INFO:oejs.AbstractConnector:main: Started ServerConnector@48b22fd4{HTTP/1.1,[http/1.1]}{0.0.0.0:8010}
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.jetty.start.Main.invokeMain(Main.java:215)
at org.eclipse.jetty.start.Main.start(Main.java:458)
at org.eclipse.jetty.start.Main.main(Main.java:76)
Caused by: java.net.SocketException: Keine Berechtigung
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)