今天遇到一个问题,webservice client获取server信息没有任何反应,现在希望如果这个等待时间(超时)过长,那么中断这个request。
方法一:weblogic设置方法
(javax.xml.rpc.Stub)PortObject._setProperty("weblogic.wsee.transport.connection.timeout", 5); (javax.xml.rpc.Stub)PortObject._setProperty("weblogic.wsee.transport.read.timeout", 5);
资源地址:http://edocs.weblogicfans.net/wls/docs92/webserv/client.html
方法二:下面是自己最初用thread手动写的例子
public class Test1 { public static void main(String[] args) { new Test1().test("para1"); } /** * 主线程中,在启动A线程之前先启动B线程来控制超时时间 * 由于A,B和主线程平级运行,所以在主线程里需要等待A,B线程isNotAlive的时候再来判定变量isResponse,进而控制是否超时 * @param para * @return */ public synchronized String test(String para) { String result = null; B b = new B(); A a = A.getIntance(); a.setPara(para); b.start(); a.start(); while(true) { if (A.isResponse && !a.isAlive() && !b.isAlive()) { result = a.getResult(); System.out.println(a.getResult());break; } if (!A.isResponse && !a.isAlive() && !b.isAlive()) { System.out.println("time out");break; } } System.out.println(a.getPara()); a.clear(); System.out.println(a.getPara()); return result; } } class A extends Thread{ private static A a = null; private A(){} public static A getIntance() { if (a == null) { a = new A(); } return a; } public String result; public String para; public String getResult() { return result; } public void setResult(String result) { this.result = result; } public String getPara() { return para; } public void setPara(String para) { this.para = para; } public void run() { result = getSIDetails(); } public static boolean isResponse = false; public String getSIDetails(){ //获取server的information,模拟无反应 while (true) {} //isResponse = true; //return result; } public void clear() { a = null; result = null; para = null; isResponse = false; } } class B extends Thread { public void run() { if (!A.isResponse) { try { sleep(10*1000);//设置超时时间,等待10s后B线程舒醒,继续执行后面的程序 if (A.getIntance().isAlive()) { A.getIntance().stop(); } } catch (InterruptedException e) { e.printStackTrace(); } } } }
相关推荐
例如,`SC2APIProtocol::GameInfo`结构体用于获取游戏的基本信息,而`Action`类则用于定义玩家的操作行为,如选择单位、移动、攻击等。 构建脚本机器人的过程通常包括以下几个步骤: 1. **初始化**:使用`SC2...
可以通过系统监控工具来获取这些信息,如`top`命令。`top`命令能够实时显示系统中各个进程(包括线程)的资源占用状况,帮助开发者快速定位问题。 - **操作步骤**: - 打开终端。 - 输入`top`命令。 - 在显示的...
通过VB 6.0的Internet Transfer控件和Windows API函数,开发者可以构建出反应迅速、交互性强的FTP客户端,以应对日益增长的网络信息需求。随着互联网的普及和大数据时代的到来,VB的多线程FTP技术将有更大的应用前景...
内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...
- `Semaphore` 控制同时访问特定资源的线程数量。 - 两者都基于内部计数器实现,但应用场景不同。 6. **Synchronized的偏向锁、轻量级锁、重量级锁** - **偏向锁** 适用于无竞争的情况。 - **轻量级锁** 使用 ...
- **监听I/O反应器**:监听客户端的连接请求。 - **连接I/O反应器**:处理客户端的连接请求。 **3.4 I/O反应器异常处理** - **I/O反应器审计日志**:记录I/O反应器的操作日志。 **3.5 非阻塞的HTTP连接** - **非...
信号(signal)是从一个对象发送出去的信息,而槽(slot)则是接收这些信号并做出相应反应的方法或函数。 - 在Qt中,当一个信号被触发时,相应的槽函数会被自动调用,实现对象间的通信。 - **示例解释:** - 通过连接...
手机客户端通过轮询方式获取这些信息,对比预设参数,一旦检测到异常,会立即向用户发送报警,并具备一键呼叫功能以快速响应紧急情况。 3. **服务保证机制** 为了确保手机客户端始终能接收到报警信息,系统设计了...
根据给定的文件信息,以下是对“C#程序单词注释汇总”的详细解析与扩展。 ### C#程序单词注释汇总 #### 概述 在C#编程中,注释是一种非常重要的工具,它帮助开发者更好地理解代码逻辑、功能实现等。本篇将围绕C#...
- **反应器模式**:主事件循环监听操作系统的事件,接收数据并将其存入缓冲区,然后进行处理。 - **单线程并发**:单个工作进程可以处理数万个并发连接。 4. **阻止未定义服务器名称的请求** - 可通过配置一个空...
在源码中,"GetInfo"可能是一个用于获取远程计算机信息的模块,例如系统状态、硬件配置等,这需要通过网络发送请求并接收响应。 其次,屏幕共享是远程控制的关键环节。VC++可以通过GDI(图形设备接口)或DirectX...
- **Class类**:获取类的信息,动态创建对象,调用方法。 - **访问私有成员**:通过反射访问私有字段和方法。 10. **Java SE新特性**: - **Java 7**:例如Try-with-resources语句,多租户架构。 - **Java 8**...
`ServerSocketChannel.accept()`用于获取并注册新的`SocketChannel`,然后设置非阻塞模式和其他Socket选项,如接收缓冲区大小、重用地址、保持活动连接等。 - `Acceptor`还会注册到`ReactorPool`,`ReactorPool`是...
- **请求处理**:如何通过HttpServletRequest对象获取客户端发送的数据。 ### 六、应用服务器篇 - **应用服务器基础知识**:如Tomcat、Jetty、WebLogic等服务器的特点和配置。 - **特点**:每种应用服务器的主要...
- **URL重写**:提供了一种方式来实现无状态的会话跟踪,通过URL添加额外的信息。 Servlet 2.4规范的这些特性为开发者提供了强大而灵活的工具,以构建复杂、高性能的Web应用程序。虽然现在Servlet 4.0已经发布,但...
其他服务则可以通过 Eureka 获取到所有可用服务的信息,实现服务间的通信。 接下来,Feign 是 Spring Cloud 中的一个声明式 REST 客户端,它简化了服务之间的调用。通过 Feign,开发者可以定义一个接口,接口的方法...
- fused_location_provider_client:Google Play服务中的位置API,用于获取用户的位置信息。 - GPS、WiFi和移动网络定位的集成。 11. **Android组件间通信**: - Intents:用于启动Activity、Service或...
2. **多线程程序结构**:每个参赛队伍的客户端程序(Client)通常由11个Agent组成,每个Agent包含两个线程:IO处理线程负责接收和响应服务器的数据包,决策线程根据有限信息进行决策并发送动作指令。为了确保数据...
在这个DEMO中,JAVA服务器端可能实现了监听特定端口,接收Android客户端发送的数据,解析这些数据,并根据需要返回相应的控制指令或反馈信息。 其次,Android客户端的实时监控功能。Android是一个基于Linux内核的...