Java 为什么它可以在main方法中运行,而不能在servlet doGet方法中运行

Java 为什么它可以在main方法中运行,而不能在servlet doGet方法中运行,java,eclipse,servlets,hadoop,nutch,Java,Eclipse,Servlets,Hadoop,Nutch,我确实在EclipseEE中运行了Nutch1.2。如果我在main方法中使用Nutch API,那么一切都很好,它可以运行,结果也可以,但我只是想将其作为一个web项目,所以我使用Servlet doGet方法(没有修改程序,保持不变),但在我单击“在服务器上运行”后,它显示: **信息ipc.Client:正在重试连接到服务器:localhost/127.0.0.1:9000。已尝试了0次。 信息ipc.Client:正在重试连接到服务器:localhost/127.0.0.1:9000。已

我确实在EclipseEE中运行了Nutch1.2。如果我在main方法中使用Nutch API,那么一切都很好,它可以运行,结果也可以,但我只是想将其作为一个web项目,所以我使用Servlet doGet方法(没有修改程序,保持不变),但在我单击“在服务器上运行”后,它显示:

**信息ipc.Client:正在重试连接到服务器:localhost/127.0.0.1:9000。已尝试了0次。 信息ipc.Client:正在重试连接到服务器:localhost/127.0.0.1:9000。已尝试1次。 信息ipc.Client:正在重试连接到服务器:localhost/127.0.0.1:9000。已尝试了2次。 Servlet的Servlet.service()返回\u searchresult\u网页引发异常 java.net.ConnectException:调用localhost/127.0.0.1:9000失败,连接异常:java.net.ConnectException:连接被拒绝:无进一步信息 位于org.apache.hadoop.ipc.Client.wrapException(Client.java:767) 位于org.apache.hadoop.ipc.Client.call(Client.java:743) 位于org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:220) 位于com.sun.proxy.$Proxy2.getProtocolVersion(未知源) 位于org.apache.hadoop.ipc.RPC.getProxy(RPC.java:359) 位于org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:106) 位于org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:207) 位于org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:170) 位于org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:82) 位于org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1378) 位于org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66) 位于org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1390) 位于org.apache.hadoop.fs.FileSystem.get(FileSystem.java:196) 位于org.apache.hadoop.fs.FileSystem.get(FileSystem.java:95) 位于org.apache.nutch.searcher.NutchBean(NutchBean.java:90) 在yuhao.return\u searchresult\u webpage.doGet(return\u searchresult\u webpage.java:63) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 位于org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 位于org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) 位于org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
在java.lang.Thread.run(未知源)**检查防火墙设置,并确保允许在端口9000上进行传入连接。检查防火墙是否所有closed@nitind,我已经用命令netstat-o-a检查了端口“9000”没有被占用。查找“9000”好的,为什么要尝试端口9000,为什么在Tomcat没有监听的情况下,它还能工作呢?@nitind,9000端口似乎与hadoop有关(请参阅上面的完整错误日志),并且在main方法中使用时,似乎一切都正常。