操作描述:
一个webservice接口如下:
public class T implements Remote{
public String T1() throws RemoteException {
String strReturn = "successed";
return strReturn;
}
}
配置文件如下:
<service name="Test" provider="java:RPC">
<parameter name="allowedMethods" value="T1" />
<parameter name="className" value="T" />
</service>
调用如下:
public class Test{
public static void main(String[] args) {
Test t=new Test();
t.sendData();
}
public void sendData(){
System.out.print("WebService 调用开始!");
String str = this.isTest();
System.out.print("WebService服务:"+str);
}
public void isTest(){
String result="";
Call m_Call = init("T1");
Object[] parAry=new Object[]{};
try {
result=(String)m_Call.invoke(parAry);
} catch (RemoteException e) {
}
return result;
}
public Call init(String CallOperationName) throws Exception{
Service service = new Service();
Call call = null;
try{
call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(this.endpoint));
call.setOperationName(CallOperationName);
call.setReturnType(XMLType.XSD_STRING);
}
catch (ServiceException e) {
}catch(Exception e){
}
return call;
}
}
如果一次一次的执行调用发法的话,那没什么问题,差不多就几秒的时间。
可是如果用线程并发的执行的时候:就会出现等待的情况,就是并发几个同时都执行完以后才会执行往下走。这个等待时间有可能是15分钟左右。
谁有碰到这个情况的么?什么解决这个问题?
问题补充:天下无贼 写道
Web Service仅仅只是一种通讯协议,就如同使用browser访问某个url是一样的。发生了lock,我个人觉得你应该取检查一下后端的的服务,是不是有什么问题?
后端就一个测试的是否服务已经开通。没有问题啊。
问题补充:天下无贼 写道
Web Service仅仅只是一种通讯协议,就如同使用browser访问某个url是一样的。发生了lock,我个人觉得你应该取检查一下后端的的服务,是不是有什么问题?
我后端就一个
String strReturn = "successed";
return strReturn;
没有别的了。
[DEBUG] 2011-10-30 13:32:02,156 method:org.apache.axis.encoding.SerializationContext.endElement(SerializationContext.java:1208)
End element T1Return
[DEBUG] 2011-10-30 13:45:00,832 method:org.apache.axis.utils.NSStack.pop(NSStack.java:119)
NSPop (32)
[DEBUG] 2011-10-30 13:45:00,833 method:org.apache.axis.message.SAXOutputter.endElement(SAXOutputter.java:109)
SAXOutputter.endElement ['' T1Response]
[DEBUG] 2011-10-30 13:31:55,829 method:org.apache.axis.encoding.SerializationContext.endElement(SerializationContext.java:1208)
End element T1Return
这个时间突然暴涨。32分钟到45分钟才反应过来
问题补充:hss118100 写道
同意楼上的回答,应该是你的服务器端配置有问题了
服务器要配置什么东西?
相关推荐
传统的同步调用方式会导致客户端程序在等待服务响应期间被阻塞,如果Web服务方法执行时间过长,用户体验会受到影响,因为程序无法进行其他操作。为了解决这个问题,引入了异步调用机制。异步调用允许客户端在发起...
在这个特定的场景中,我们关注的是一个名为"webService火车站点查询"的项目,它涉及到利用Web Service来查询火车站点的相关信息。在实现这个功能时,开发者可能采用了Asynchronous HTTP Client(异步HTTP客户端)...
标题中的"storm_webservice.zip"表明这是一个与Apache Storm相关的Web服务的压缩文件。Apache Storm是一个开源的分布式实时计算系统,它允许用户连续处理和计算数据流。在这个压缩包中,可能包含了实现特定Web服务...
5. **异步调用WebService:** Axis2支持异步调用模式,使得客户端可以在等待服务响应时执行其他任务,提高了应用的响应速度和并发处理能力。 6. **Spring JavaBean发布为WebService:** Axis2可以与Spring框架无缝...
WebService Demo是一个示例项目,展示了如何在服务端和客户端之间使用WebService进行通信。WebService是一种基于互联网的标准协议,用于应用程序之间的交互,它使得不同系统、平台间的数据交换变得简单。这个Demo...
5. **配置Flow References**:在Scatter-Gather内部,为每个Web服务Outbound Endpoint创建一个单独的子流程,这样每个Web服务调用将在自己的线程中执行。 6. **收集响应**:Scatter-Gather会收集所有子流程的响应,...
以Axis2为例,创建一个不需要任何配置的WebService,首先需要下载并安装Axis2。下载地址为:[http://ws.apache.org/axis2/](http://ws.apache.org/axis2/),推荐使用最新版本,本文以1.4.1版为例。下载后,将axis2-...
通常,这会在回调方法中进行,例如: ```csharp WeatherData result = (WeatherData)webServiceProxy.EndGetWeatherData(asyncResult); // 处理result ``` 回调方法可以在`BeginInvoke`调用时传入,也可以通过...
3. **创建Socket实例**:在主程序中,实例化一个Socket对象,指定其地址族(通常为InterNetwork)、套接字类型(通常为Stream,表示TCP协议)以及协议类型(通常为Tcp)。 ```csharp Socket serverSocket = new ...
而在异步调用中,调用`GetGradeAsync`方法不会立即返回结果,而是会在后台线程中执行,调用者可以继续执行后续代码,然后通过`GetGradeCompleted`事件处理程序来接收服务调用的结果。 异步调用的优势在于它可以避免...
在保险平台的场景中,Webservice客户端可能需要执行以下功能: - **投保申请**:客户端收集客户信息,如个人信息、保险种类、保障期限等,构建投保请求,并发送给服务器。 - **保单查询**:根据保单号或客户信息,向...
阻塞I/O模型是同步执行请求的模型,它在执行请求的过程中会阻塞调用线程,直到操作完成。阻塞HTTP连接是一种基于阻塞I/O模型的连接,它适用于不需要异步处理的场景。但在高并发的环境下,阻塞模型可能会导致线程资源...
7. 异步调用:为了提高性能,尤其是处理大量并发请求时,C# Web服务支持异步方法调用,允许客户端在等待响应的同时执行其他任务。 8. .NET Core支持:随着.NET Core的推出,Web服务开发也有了跨平台的选择。ASP.NET...
2. **异步编程**:异步编程模型允许Web服务在等待I/O操作完成时执行其他任务,提高了服务的并发性和响应性。在libevent中,通过注册事件回调函数,当事件发生时,libevent会调用对应的回调函数,而不是阻塞等待事件...
JAX-WS 2.0 是Java API for XML Web Services的第二个主要版本,它引入了异步Web服务调用的功能,以解决在Service-Oriented Architecture(SOA)环境中开发响应迅速的Web服务客户端应用程序的挑战。由于Web服务调用...
标题提及的“webservice测试工具”可能是一款小巧但功能齐全的Web服务测试解决方案。像SoapUI这样的工具,是业界广泛使用的Web服务测试利器,它支持SOAP(简单对象访问协议)和REST(Representational State ...
在多线程编程中,线程同步是一种控制多个线程并发执行的技术,以防止数据竞争和其他潜在错误。常见的线程同步机制包括互斥量、信号量、事件、条件变量等。在网络环境中,线程同步尤其重要,因为它可以确保多个线程在...
**WebService与SOAPUI详解** WebService是一种基于Web的、开放式、标准化的接口技术,它允许不同系统之间进行数据交换,跨越了操作系统和编程语言的限制。这项技术的核心是使用XML(可扩展标记语言)来描述服务,并...
这些线程会存放在线程列表中,当数据需要处理时,系统会从线程队列中选取一个线程来执行数据交换任务。`GetQueuedCompletionStatus`是每个线程中必不可少的函数,当没有任务时,线程会进入等待状态,直到有任务到来...
在同步模式下,程序执行流程是线性的,一个任务必须等待前一个任务完成后才能继续执行,这可能导致应用程序在处理耗时操作(如网络请求或大数据计算)时阻塞。而异步调用则允许程序在等待某个任务完成的同时,可以...