我有這個例外。我試圖做碼頭服務器。根據想法,它必須是Handler []參數,它是,但是這個例外。我不知道我需要改變什麼。誰能幫忙?爲什麼有IllegalArgumentException:錯誤的端口:0?
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) at org.codehaus.mojo.exec.ExecJavaMojo $ 1上的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) 。運行(ExecJavaMojo.java:293) at java.lang.Thread.run(Thread.java:745) 引發:java.lang.IllegalArgumentException:錯誤端口:0 at java.util.logging.SocketHandler.connect(SocketHandler.java:160) at java.util.logging.SocketHandler的。(SocketHandler.java:125) 在our.arti.JettyServerArti.JettyStarter.main(JettyStarter.java:27) ... 6個
如果您需要更具體的細節讓我知道。
如果你仔細閱讀你的異常將看到:java.lang.IllegalArgumentException異常:錯誤的端口:通過_Caused 0_,這意味着'connector.setPort(8080);'不正常.. 。你有沒有調試過,有沒有一個有效的'server'和'connector'實例? –
@JordiCastilla @JordiCastilla在這個程序中是一個處理程序,而不是處理程序它正在與8080端口 – Artemon
@JordiCastilla - 關閉,但這不是這個意思。請參閱下面的答案。 'new SocketHandler()'調用的初始化函數是個例外,它對你提到的調用所在的'ServerConnector'沒有任何認識。 –