私は次のプログラムを試しています:
- SUDO Java を使用してすべてを実行する場合は問題ありませんが、SUDO は使用したくありません
- SUDO がないと、次のエラーが発生します。
SocketException: Permission Denied (as its PORT 80)
桟橋のドキュメントを使用して、変更したコマンドラインを使用してこれを機能させます
jetty-setuid.xm
l -- put user-name は非 root ユーザーですstart.ini
-- EXEC に変更しetc/jetty-setuid.xml
、最初のパラメーターとして渡すjetty.xml
-- ポート番号を 80 にする
次に、非ルートユーザーとしてsudoを実行します--> sudo java -jar start.jar
Jettyはポート80で非ルートユーザーとして起動します。
JAVAプログラムを使用して同じことを達成したい。ヘルプ/コメントをお待ちしております。
package my.package;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
public class JettyTest {
public static void main(String[] args) throws Exception
{
Server server = new Server();
System.out.println("Created new server, now going to start");
SelectChannelConnector connector0 = new SelectChannelConnector();
connector0.setPort(80); //on port 80
connector0.setMaxIdleTime(30000);
connector0.setRequestHeaderSize(8192);
server.setConnectors(new Connector[]{ connector0 });
server.setHandler(new MyHandler()); //simple hello world handler
server.start();
System.out.println("started server on port 80");
server.join();
}
}