Tag: hang

Commons Net FTPClient与Mule无限期挂起

我遇到了Mule ESB FTP传输的问题:轮询时,运行客户端的线程将无限期挂起而不会抛出错误。 这会导致FTP轮询完全停止。 Mule使用Apache Commons Net FTPClient。 进一步研究代码,我认为这是由FTPClient的SocketTimeout没有设置引起的,有时候在从FTPClient的套接字读取行时会导致无限挂起。 当问题发生时,我们可以清楚地看到用jstack检索到的这些堆栈中的问题。 __getReply()函数似乎是问题的更直接链接。 这个在创建新的FTPClient时挂在connect()调用上: receiver.172 prio=10 tid=0x00007f23e43c8800 nid=0x2d5 runnable [0x00007f24c32f1000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:152) at java.net.SocketInputStream.read(SocketInputStream.java:122) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177) – locked (a java.io.InputStreamReader) at java.io.InputStreamReader.read(InputStreamReader.java:184) at java.io.BufferedReader.fill(BufferedReader.java:154) at java.io.BufferedReader.readLine(BufferedReader.java:317) – locked (a java.io.InputStreamReader) at java.io.BufferedReader.readLine(BufferedReader.java:382) at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:294) at org.apache.commons.net.ftp.FTP._connectAction_(FTP.java:364) at org.apache.commons.net.ftp.FTPClient._connectAction_(FTPClient.java:540) […]

缓冲读取器HTTP POST

寻求一些帮助,我目前编写了一个HTTP服务器。 它目前正在处理GET请求。 但是,在使用POST时,缓冲的阅读器似乎挂了。 当请求停止时,通过缓冲读取器读取其余输入流。 我在谷歌上发现了一些东西。 我已经尝试将CRLF和协议版本从1.1更改为1.0(浏览器自动发出请求为1.1)任何想法或帮助将不胜感激。 谢谢