我有这个例外。我试图制造码头服务器。根据想法,它必须是Handler []参数,并且是,但这是例外。我不知道我需要改变什么。有人可以帮忙吗?

 public static void main(String[] args) {
    Server server = new Server();
    ServerConnector connector = new ServerConnector(server);
    connector.setPort(8080);
    server.addConnector(connector);
    ResourceHandler resourceHandler = new ResourceHandler();
    resourceHandler.setDirectoriesListed(true);
    resourceHandler.setWelcomeFiles(new String[]{ "index.html" });
    resourceHandler.setResourceBase(".");
    HandlerList handlers = new HandlerList();
    handlers.setHandlers(new Handler[]{new SocketHandler(), resourceHandler}); //#27
    server.setHandler(handlers);
    try {
        server.start();
        server.join();
    }
    catch (Throwable t){
        t.printStackTrace(System.err);
    }
}


我得到这个例外


java.lang.reflect.InvocationTargetException
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在java.lang.reflect.Method.invoke(Method.java:498)
在org.codehaus.mojo.exec.ExecJavaMojo $ 1.run(ExecJavaMojo.java:293)
在java.lang.Thread.run(Thread.java:745)
引起原因:java.lang.IllegalArgumentException:错误的端口:0
在java.util.logging.SocketHandler.connect(SocketHandler.java:160)
在java.util.logging.SocketHandler。(SocketHandler.java:125)
在our.arti.JettyServerArti.JettyStarter.main(JettyStarter.java:27)
...另外6个


如果您需要更多具体细节,请告诉我。

最佳答案

内部堆栈跟踪具有您可能错过的几个详细信息。

Caused by: java.lang.IllegalArgumentException: Bad port: 0
at java.util.logging.SocketHandler.connect(SocketHandler.java:160)
at java.util.logging.SocketHandler.<init>(SocketHandler.java:125)


请注意,失败的是SocketHandler.<init>,而不是setHandlers()调用。错误是Bad port: 0。因此,如果您全神贯注地理解setHandlers()的参数,那可能是在树错了树...

那么new SocketHandler()是什么呢?那就是你应该研究的...

关于java - 为什么会有IllegalArgumentException:错误的端口:0?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41959121/

10-12 17:58
查看更多