svn 远程主机强迫关闭闭了一个现有的连接是什么意思

webservice客户端调用服务端异常 —— 远程主机强迫关闭了一个现有的连接
时间: 00:01:14
&&&& 阅读:267
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&最近遇到一个比较棘手的问题:
问题是这样的,搭建了一个webservice的服务平台,让后提供给多个接口调用,有两家接口调用了同样的一个方法,但是第一家的接口从来没有出现过问题,而另一家就奇怪了,最近总是出现 socket通信中断的情况,客户端报错如下:
调用WebService时找不到方法:doDownloadRecipeInfo。原因:System.Reflection.TargetInvocationException:&Exception&has&been&thrown&by&the&target&of&an&invocation.&---&&System.Net.WebException:&The&underlying&connection&was&closed:&An&unexpected&error&occurred&on&a&receive.&---&&System.IO.IOException:&Unable&to&read&data&from&the&transport&connection:&远程主机强迫关闭了一个现有的连接。.&---&&System.Net.Sockets.SocketException:&远程主机强迫关闭了一个现有的连接。&&&at&System.Net.Sockets.Socket.Receive(Byte[]&buffer,&Int32&offset,&Int32&size,&SocketFlags&socketFlags)&&&at&System.Net.Sockets.NetworkStream.Read(Byte[]&buffer,&Int32&offset,&Int32&size)&&&---&End&of&inner&exception&stack&trace&---&&&at&System.Net.Sockets.NetworkStream.Read(Byte[]&buffer,&Int32&offset,&Int32&size)&&&at&System.Net.PooledStream.Read(Byte[]&buffer,&Int32&offset,&Int32&size)&&&at&System.Net.Connection.SyncRead(HttpWebRequest&request,&Boolean&userRetrievedStream,&Boolean&probeRead)&&&---&End&of&inner&exception&stack&trace&---&&&at&System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest&request)&&&at&System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest&request)&&&at&System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String&methodName,&Object[]&parameters)&&&at&EnterpriseServerBase.WebService.DynamicWebCalling.HdyyElectronicService.doDownloadRecipeInfo(String&userName,&String&password,&String&senderCode)&&&---&End&of&inner&exception&stack&trace&---&&&at&System.RuntimeMethodHandle.InvokeMethod(Object&target,&Object[]&arguments,&Signature&sig,&Boolean&constructor)&&&at&System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object&obj,&Object[]&parameters,&Object[]&arguments)&&&at&System.Reflection.RuntimeMethodInfo.Invoke(Object&obj,&BindingFlags&invokeAttr,&Binder&binder,&Object[]&parameters,&CultureInfo&culture)&&&at&System.Reflection.MethodBase.Invoke(Object&obj,&Object[]&parameters)&&&at&XmlTrans.Core.WSHelperCore.InvokeWebServiceMethod(String&methodname,&Object[]&args)
而在服务端报错为:
10:09:35,996-135315 ERROR [org.apache.axis2.transport.http.CommonsHTTPTransportSender] (http-apr-8082-exec-1:) org.apache.axis2.AxisFault at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) at org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:78) at org.apache.axis2.transport.http.CommonsHTTPTransportSender.sendUsingOutputStream(CommonsHTTPTransportSender.java:364) at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:241) at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443) at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:43) at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181) at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172) at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146) at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2442) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2431) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:662)Caused by: com.ctc.wstx.exc.WstxIOException: null at com.ctc.wstx.sw.BaseStreamWriter.finishDocument(BaseStreamWriter.java:1692) at com.ctc.wstx.sw.BaseStreamWriter.close(BaseStreamWriter.java:288) at org.apache.axiom.util.stax.wrapper.XMLStreamWriterWrapper.close(XMLStreamWriterWrapper.java:46) at org.apache.axiom.om.impl.MTOMXMLStreamWriter.close(MTOMXMLStreamWriter.java:222) at org.apache.axiom.om.impl.llom.OMSerializableImpl.serializeAndConsume(OMSerializableImpl.java:192) at org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:74) ... 28 moreCaused by: ClientAbortException:
java.io.IOException at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:413) at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:480) at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:359) at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:333) at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:101) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:124) at com.ctc.wstx.io.UTF8Writer.flush(UTF8Writer.java:99) at com.ctc.wstx.sw.BufferingXmlWriter.flush(BufferingXmlWriter.java:214) at com.ctc.wstx.sw.BufferingXmlWriter.close(BufferingXmlWriter.java:194) at com.ctc.wstx.sw.BaseStreamWriter.finishDocument(BaseStreamWriter.java:1690) ... 33 moreCaused by: java.io.IOException at org.apache.coyote.http11.InternalAprOutputBuffer.flushBuffer(InternalAprOutputBuffer.java:205) at org.apache.coyote.http11.InternalAprOutputBuffer.access$100(InternalAprOutputBuffer.java:37) at org.apache.coyote.http11.InternalAprOutputBuffer$SocketOutputBuffer.doWrite(InternalAprOutputBuffer.java:235) at org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:93) at org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:192) at org.apache.coyote.Response.doWrite(Response.java:520) at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:408) ... 42 more 10:09:35,998-135317 ERROR [org.apache.axis2.transport.http.CommonsHTTPTransportSender] (http-apr-8082-exec-1:) org.apache.axis2.AxisFault at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) at org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:78) at org.apache.axis2.transport.http.CommonsHTTPTransportSender.sendUsingOutputStream(CommonsHTTPTransportSender.java:364) at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:241) at org.apache.axis2.engine.AxisEngine.sendFault(AxisEngine.java:526) at org.apache.axis2.transport.http.AxisServlet.handleFault(AxisServlet.java:433) at org.apache.axis2.transport.http.AxisServlet.processAxisFault(AxisServlet.java:398) at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:188) at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2442) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2431) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:662)Caused by: com.ctc.wstx.exc.WstxIOException: null at com.ctc.wstx.sw.BaseStreamWriter.finishDocument(BaseStreamWriter.java:1692) at com.ctc.wstx.sw.BaseStreamWriter.close(BaseStreamWriter.java:288) at org.apache.axiom.util.stax.wrapper.XMLStreamWriterWrapper.close(XMLStreamWriterWrapper.java:46) at org.apache.axiom.om.impl.MTOMXMLStreamWriter.close(MTOMXMLStreamWriter.java:222) at org.apache.axiom.om.impl.llom.OMSerializableImpl.serializeAndConsume(OMSerializableImpl.java:192) at org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:74) ... 26 moreCaused by: ClientAbortException:
java.io.IOException at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:413) at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:480) at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:359) at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:333) at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:101) at com.ctc.wstx.io.UTF8Writer.flush(UTF8Writer.java:99) at com.ctc.wstx.sw.BufferingXmlWriter.flush(BufferingXmlWriter.java:214) at com.ctc.wstx.sw.BufferingXmlWriter.close(BufferingXmlWriter.java:194) at com.ctc.wstx.sw.BaseStreamWriter.finishDocument(BaseStreamWriter.java:1690) ... 31 moreCaused by: java.io.IOException at org.apache.coyote.http11.InternalAprOutputBuffer.flushBuffer(InternalAprOutputBuffer.java:205) at org.apache.coyote.http11.InternalAprOutputBuffer.access$100(InternalAprOutputBuffer.java:37) at org.apache.coyote.http11.InternalAprOutputBuffer$SocketOutputBuffer.doWrite(InternalAprOutputBuffer.java:235) at org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:93) at org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:192) at org.apache.coyote.Response.doWrite(Response.java:520) at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:408) ... 39 more
更具客户端和服务端的报错,知道是Socket IO异常造成的,但是好好的用着为什么就出现了IO读写异常了呢?平常也都是这样用的呀!
带着满脸的疑问,开始寻找问题所在吧。
首先,就是在网上找各种解决办法,网上说法很多,最早是以为webservice的方法没有成功调通就被关掉了,后来经过测试,证明服务是能够被成功调通的,只是webservice方法返回给客户端返回值的时候出现异常,导致socket通信中断。那为什么返回数据的时候会导致通信连接被断掉呢?在网上搜答案,网上各种说法都有,
其中倾向于了关于客户端和服务端等待超时的设置,那就试试修改一下等待超时时常的设置吧,
我使用的客户端的调用的方法如下:
1 public static String doDownloadRecipeInfo(String username,String password ,String senderCode ) {
String result = "";
String url =XmlUtil.queryInfo(1).getWebserviceURL();//通过公共类获取webservice的URL
String qname=XmlUtil.queryInfo(1).getQname();//通过公共类获取webservice发布的服务名
<span style="color: #
logger.setLevel(Level.DEBUG);
<span style="color: #
Service service = new Service();
<span style="color: #
Call call = (Call) service.createCall();
<span style="color: #
call.setTargetEndpointAddress(new java.net.URL(url));
<span style="color: #
call.setOperationName(new QName(qname, "doDownloadRecipeInfo"));
<span style="color: #
call.addParameter("userName", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
<span style="color: #
call.addParameter("password", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
<span style="color: #
call.addParameter("senderCode", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
<span style="color: #
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
<span style="color: #
call.setUseSOAPAction(true);
<span style="color: #
call.setTimeout();//设置客户端的等待超时时间
<span style="color: #
<span style="color: #
call.setSOAPActionURI(qname+"doDownloadRecipeInfo");
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
result = (String) call.invoke(new Object[]{username,password ,senderCode});
<span style="color: #
} catch (Exception e) {
<span style="color: #
e.printStackTrace();
<span style="color: #
//logger.error("调用平台接口方法doDownloadRecipeStatusInfo失败", e);
<span style="color: #
<span style="color: # //
logger.info("返回信息" + result);
<span style="color: #
if(result!=null&& result.length()&0){
<span style="color: #
System.out.println(result);
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
服务端的设置,在服务端的tomcat下的conf文件夹下的 server.xml中修改连接超时时长
&Connector port="18558" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8444" /&
&!-- 将上面中的connectionTimeout参数调整的大一点
然后尝试执行客户端的程序调用服务端的方法,但是执行了几分钟之后仍然报错,连接被挂掉了!
因为调用webservice方法之后返回的XML格式的数据太长了,我想从简单的验证,就将返回的XML格式的数据弄短了些,让后仍然将等待时间设置长了点,重新执行客户端的程序之后数据成功获取到了;为了验证是等待超时的问题还是数据太长的原因,我将等待超时设置默认的值,然后重新调用webservice,结果是失败;然后我又将等待时长调大,然后将返回的XML数设置长,测试的结果是连接又被干掉了!
让后我在网上了解,看到有人在网上回答:数据太大的话,比如一下返回的数据是10M的,网络连接很快就会被挂掉了!
同时,经验证,如果数据稍微大点,比如3-4M,有时候可以通过稍微调大等待超时时长来解决问题,但是如果数据偏大的话,比如10M,调大等待超时时长也无济于事,Socket连接很快会被干掉,只要数据一直这么大,连接就会被不断的干掉。
所以经过不断调试,调整了webservice方法返回的数据的大小,并稍微调大了等待超时时长,再次运行服务端和客户程序之后,数据稳定的进行处理和传输。
总结:webservice只适用于小数据的传输,不要尝试使用webservice进行大数据的传输。
&标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文地址:https://www.cnblogs.com/jackliu2013/p/8660941.html
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!远程主机强迫关闭了一个现有的连接。有人知道这是什么原因吗【ansys吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:68,679贴子:
远程主机强迫关闭了一个现有的连接。有人知道这是什么原因吗收藏
上海佳研提供ansys全系列设计仿真软件技术支持及销售!提供ansys全系列设计及仿真软件技术支持及销售,邮箱;.cn 欢迎咨询!
求大神啊!
登录百度帐号远程主机强迫关闭了一个现有的连接是什么意思_百度知道
远程主机强迫关闭了一个现有的连接是什么意思
我有更好的答案
“远程主机强迫关闭了一个现有的连接”出现的问题是:1、网络运营商处的终端出了问题2、家里的路由器也有可能是肇事者3、电脑上程序的问题,像是防火墙的设置,在局域网内电脑硬盘共享引起或者是病毒引起。所以要解决这个提示出现的问题的话,可以从以上几个方面着手远程登陆远程登录是指用户使用Telnet命令,使自己的计算机暂时成为远程主机的一个仿真终端的过程。仿真终端等效于一个非智能的机器,它只负责把用户输入的每个字符传递给主机,再将主机输出的每个信息回显在屏幕上。&Telnet是进行远程登录的标准协议和主要方式,它为用户提供了在本地计算机上完成远程主机工作的能力。通过使用Telnet,Internet用户可以与全世界许多信息中心图书馆及其它信息资源联系。
采纳率:100%
可能原因如下:1、远程主机出了问题,或者处理能力有限,无法保持连接。2、当前的网络连接出了问题,比如网络波动等,与主机的连接被断开。3、电脑网络连接速度慢,在指定的时间内没有回应或响应,超过主机的响应时间后,自动关闭了连接。
本回答被提问者采纳
你的计算机是局域网的吧!而且不止你一个人在使用这个网络,你打开网上邻居,点击“查看工作组的计算机”看看有没有其他的计算机在使用局域网。之所以会显示这个“远程主机强迫关闭了一个现有的链接”应该是你共享了硬盘,这样其他的计算机都能进入这个硬盘来查看里面的文件了。点击这个共享的硬盘右键属性,选择共享选项卡,把允许别人查看我的文件这个勾去掉,应该就能解决问题了。我也没有遇到过这样的情况,你最好还是去问问局域网的管理员。
本回答被网友采纳
为您推荐:
其他类似问题
主机的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。远程主机强迫关闭了一个现有的连接是什么意思_百度知道
远程主机强迫关闭了一个现有的连接是什么意思
我有更好的答案
1、网络提供商(电信、网通、……)出的问题2、如果你自己接了路由器,这个路由器也是肇事者3、电脑上程序的问题。防火墙,或者是病毒引起。根据这些可能找找。如有不全,希望其他人能指出,以帮助解决。
采纳率:51%
为您推荐:
其他类似问题
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。远程主机强迫关闭了一个现有的连接
安卓开发过程中查看log是必不可少的,相信好多朋友应该也遇到了adb断开连接之类的问题,非常的烦。
这个问题也困扰了我一个多月,网上找到的答案无非就是两种。
1,重启adb,adb kill-server adb start-server。
2,adb是32的,手机线程数太多就会发生错误,需要更换成64的。
笔者试了这两种方法,都不是我想要的,第一个治标不治本,第二种重新下载了个adb也没有反应,问题没有得到解决。
经过一番折腾后,找到了一个解决我手机问题的办法。
1,首先,手机助手类的软件是肯定不能有的,这类软件和流氓没什么区别,如果是开了酷狗,也会出现断开情况。
2,升级adb,找到sdk所在目录,进入tools目录,把地址栏的地址复制下来,然后打开cmd,把刚刚复制的地址复制到控制台,再在后面加上\android
update adb 然后按回车键,出现adb has been updated. You must restart adb with
the following commands就是升级成功了!
3,进入手机设置,开发者选项,撤销usb授权
4,然后运行项目,电脑会请求usb授权,自己判断是否是Android studio 请求的,只有Android
studio请求的才允许,其余的一律拒绝
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!}

我要回帖

更多关于 远程主机强迫关闭 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信