xfire生成的java客户端类调用webservice问题

问题描述

我用xfire+myEclipse生成的webservice客户端类,然后写一个java类调用webservice接口方法,把这个java类用dwr的方式给前台jsp调用,调用成功,但是一段时间(大概几分钟)不操作,即不发起请求,再发起请求时会有xfire的一个异常(异常如下),连接断开或者说超时,想问这是什么原因,要如何解决,xfire调用webservice接口时有方法设定连接时长么我的调用方式ServiceClientsc=newServiceClient();ServiceSoapss=sc.getServiceSoap();Stringresult=ss.testweb("aaa");//这里就是直接调用xfire生成的webservice接口方法2009-06-0219:51:30,531ERROR[org.codehaus.xfire.transport.http.HttpChannel]-java.net.SocketException:Connectionresetorg.codehaus.xfire.XFireRuntimeException:Couldnotinvokeservice..Nestedexceptionisorg.codehaus.xfire.fault.XFireFault:Couldn'tsendmessage.org.codehaus.xfire.fault.XFireFault:Couldn'tsendmessage.atorg.codehaus.xfire.fault.XFireFault.createFault(XFireFault.java:89)atorg.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:30)atorg.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)atorg.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)atorg.codehaus.xfire.client.Invocation.invoke(Invocation.java:114)atorg.codehaus.xfire.client.Client.invoke(Client.java:336)atorg.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)atorg.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)at$Proxy8.getPoliceArea(UnknownSource)atcom.founder.app.gather.logic.impl.MpCjWebServiceImpl.getPoliceArea(MpCjWebServiceImpl.java:114)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(UnknownSource)atsun.reflect.DelegatingMethodAccessorImpl.invoke(UnknownSource)atjava.lang.reflect.Method.invoke(UnknownSource)atorg.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34)atorg.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)atorg.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:431)atorg.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:283)atorg.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52)atorg.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101)atorg.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:709)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:802)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)atcom.founder.manage.admin.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:30)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)atorg.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)atorg.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)atorg.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)atorg.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)atorg.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)atjava.lang.Thread.run(UnknownSource)Causedby:org.codehaus.xfire.XFireException:Couldn'tsendmessage.atorg.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:145)atorg.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)atorg.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)...38moreCausedby:java.net.SocketException:Connectionresetatjava.net.SocketInputStream.read(UnknownSource)atjava.io.BufferedInputStream.fill(UnknownSource)atjava.io.BufferedInputStream.read(UnknownSource)atorg.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:77)atorg.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:105)atorg.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1115)atorg.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1373)atorg.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1832)atorg.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1590)atorg.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:995)atorg.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)atorg.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)atorg.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)atorg.codehaus.xfire.transport.http.CommonsHttpMessageSender.send(CommonsHttpMessageSender.java:369)atorg.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:123)...40more

解决方案

解决方案二:
有这么麻烦吗?我用的xfire+spring.配好wsdl的url之后,直接MyInterfacemyIntf=(MyInterface)applicationContext.getBean("serviceBean名字");然后myIntf就可以像本地bean一样调用了。
解决方案三:
java.net.SocketException:Connectionreset你需要设置自动重连机制
解决方案四:
该回复于2009-06-22 18:52:56被版主删除

时间: 2025-01-21 11:11:01

xfire生成的java客户端类调用webservice问题的相关文章

android webservice-android客户端开发调用webservice是出现错误

问题描述 android客户端开发调用webservice是出现错误 HttpTransportSE对象se.call(null,envelope);不能执行,导致activity直接stop class MyButtonListener implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub //调用方法 int num1 = 1; int nu

C/S结构客户端异步调用WebService

问题描述 C/S结构客户端(有多个客户端)调用服务端,请求后直接可以返回结果,但是该结果不是最终结果.后续服务端还会生成若干个状态信息.客户端如何才能拿到这些信息.想到几种解决方法,但都不完美.1.客户端通过异步WebService方式调用,拿到结果后,如果不是最终状态,再发起一个异步调用(缺点:占用连接)2.客户端轮询(缺点:占用资源)3.用户手动触发(缺点:用户体验不好) 解决方案 轮询的方案是最简单的,并且不容易出错,服务器可以返回客户端一个标记,然后客户端再拿这个标记去服务器询问是否有了

Java客户端如何调用IIS服务器?

问题描述 WEB服务器是IIS,是在.net环境下搭建的.客户端是java程序,想使用xfire框架.这个方案可行吗?服务端需不需要中间层? 解决方案 解决方案二:没有必要用WebService(也没必要用Xfire),你只要让JAVA调用你的HTTP地址返回JSON数据就可以了呀.

非托管类调用Webservice时的类型转换

问题描述 我现在需要通过非托管C++调用C#编写的一个Webservice,其中一个调用参数是C#的Datetime类,但是本地代理类的类型是BSTR,我应该如果生成对应的参数类型传递给这个函数呢?谢谢! 解决方案 解决方案二:有没有哪位给点提示?解决方案三:顶,碰到这种问题.解决方案四:顶,碰到这种问题.解决方案五:顶,碰到这种问题.

.net 2008 调用webservice服务出错

问题描述 DimobjInsuAsNewServiceReference3.outwebserviceClient在这个地方报错!在ServiceModel客户端配置部分中,找不到引用协定"ServiceReference3.outwebservice"的默认终结点元素.这可能是因为未找到应用程序的配置文件,或者是因为客户端元素中找不到与此协定匹配的终结点元素.请大家帮我看看这是什么原因,我在服务引用的时候是可以找到服务的! 解决方案 解决方案二:删除这个Web引用,重新生成一下.解决

Java编程中使用XFire框架调用WebService程序接口_java

 JAVA调用webservice,当你刚开始接触的时候你会觉得它是一个恶梦,特别是没有一个统一的标准实现,比起.net的那些几步就可以完成的webservice实现,我们看着JAVA的实现真是伤心啊.但就算是伤心,我们也还是要完成的.JAVA也不乏比较好的实现,如xfire,jersey,CXF. 这里我们就一起来看一下xfire的实现.  1)首先,当然是要下包啦,这个普通人都知道.http://xfire.codehaus.org/Download可以到这里去下,可以下all也可以下dis

用xfire开发了一个webservice,客户端在调用的时候要传一个二进制数据byte[][] ,在本地tomcat服务器上测试成功,可以接受,

问题描述 用xfire开发了一个webservice,客户端在调用的时候要传一个二进制数据byte[][],在本地tomcat服务器上测试成功,可以接受,但发布到weblogic9上后,就出现问题,错误日志为:-Faultoccurred!java.lang.UnsupportedOperationExceptionatweblogic.xml.stax.XMLStreamReaderBase.getTextCharacters(XMLStreamReaderBase.java:487)ator

Android中调用webservice的工具类

最近学习WebService,感觉利用这个借口开发网站的Android客户端方便及了,用到一个工具类,这 里铭记一下. publicstaticfinal String WebServiceNamespace =""//地址publicstaticfinal String WebAddress = ""//地址 调用Webservice public static Object callWebservice(String WebServiceUrl,String m

java调用webservice接口发送xml报文

问题描述 java调用webservice接口发送xml报文 1.webservice接口是axis1发布的 2.请求报文格式如下 <?xml version="1.0" encoding="gbk"?><SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XM