我有这个例外。我试图制造码头服务器。根据想法,它必须是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/